CREATE EXTERNAL TABLE - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CREATE EXTERNAL TABLE

Membuat tabel eksternal baru dalam skema yang ditentukan. Semua tabel eksternal harus dibuat dalam skema eksternal. Jalur penelusuran tidak didukung untuk skema eksternal dan tabel eksternal. Untuk informasi selengkapnya, lihat CREATE EXTERNAL SCHEMA.

Selain tabel eksternal yang dibuat menggunakan CREATE EXTERNAL TABLE perintah, Amazon Redshift dapat mereferensikan tabel eksternal yang ditentukan dalam AWS Glue atau AWS Lake Formation katalog atau metastore Apache Hive. Gunakan CREATE EXTERNAL SCHEMA perintah untuk mendaftarkan database eksternal yang ditentukan dalam katalog eksternal dan membuat tabel eksternal tersedia untuk digunakan di Amazon Redshift. Jika tabel eksternal ada di AWS Glue atau AWS Lake Formation katalog atau metastore Hive, Anda tidak perlu membuat tabel menggunakan. CREATE EXTERNAL TABLE Untuk melihat tabel eksternal, kueri tampilan SVV_EXTERNAL_TABLES sistem.

Dengan menjalankan perintah CREATE EXTERNAL TABLE AS, Anda dapat membuat tabel eksternal berdasarkan definisi kolom dari kueri dan menulis hasil kueri tersebut ke Amazon S3. Hasilnya dalam Apache Parquet atau format teks yang dibatasi. Jika tabel eksternal memiliki kunci atau kunci partisi, Amazon Redshift mempartisi file baru sesuai dengan kunci partisi tersebut dan mendaftarkan partisi baru ke dalam katalog eksternal secara otomatis. Untuk informasi lebih lanjut tentang CREATE EXTERNAL TABLE AS, lihatCatatan penggunaan.

Anda dapat melakukan kueri tabel eksternal menggunakan SELECT sintaks yang sama yang Anda gunakan dengan tabel Amazon Redshift lainnya. Anda juga dapat menggunakan INSERT sintaks untuk menulis file baru ke lokasi tabel eksternal di Amazon S3. Untuk informasi selengkapnya, lihat INSERT(tabel eksternal).

Untuk membuat tampilan dengan tabel eksternal, sertakan SCHEMA BINDING klausa WITH NO dalam CREATE VIEW pernyataan.

Anda tidak dapat menjalankan CREATE EXTERNAL TABLE di dalam transaksi (BEGIN...END). Untuk informasi lebih lanjut tentang transaksi, lihatIsolasi yang dapat diserialisasi.

Hak istimewa yang diperlukan

Untuk membuat tabel eksternal, Anda harus menjadi pemilik skema eksternal atau superuser. Untuk mentransfer kepemilikan skema eksternal, gunakan ALTER SCHEMA untuk mengubah pemilik. Akses ke tabel eksternal dikendalikan oleh akses ke skema eksternal. Anda tidak bisa GRANT atau REVOKE izin pada tabel eksternal. Sebaliknya, berikan atau cabut USAGE skema eksternal.

Catatan penggunaanMemiliki informasi tambahan tentang izin khusus untuk tabel eksternal.

Sintaks

CREATE EXTERNAL TABLE
external_schema.table_name
(column_name data_type [, …] )
[ PARTITIONED BY (col_name data_type [, … ] )]
[ { ROW FORMAT DELIMITED row_format |
  ROW FORMAT SERDE 'serde_name'
  [ WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ] } ]
STORED AS file_format
LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' }
[ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]

Berikut ini adalah sintaks untuk CREATE EXTERNAL TABLE AS.

CREATE EXTERNAL TABLE
external_schema.table_name
[ PARTITIONED BY (col_name [, … ] ) ]
[ ROW FORMAT DELIMITED row_format ]
STORED AS file_format
LOCATION { 's3://bucket/folder/' }
[ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]
 AS
 { select_statement }
         

Parameter

external_schema.table_name

Nama tabel yang akan dibuat, dikualifikasikan oleh nama skema eksternal. Tabel eksternal harus dibuat dalam skema eksternal. Untuk informasi selengkapnya, lihat CREATE EXTERNAL SCHEMA.

Panjang maksimum untuk nama tabel adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Anda dapat menggunakan UTF -8 karakter multibyte hingga maksimal empat byte. Amazon Redshift memberlakukan batas 9.900 tabel per cluster, termasuk tabel sementara yang ditentukan pengguna dan tabel sementara yang dibuat oleh Amazon Redshift selama pemrosesan kueri atau pemeliharaan sistem. Secara opsional, Anda dapat memenuhi syarat nama tabel dengan nama database. Dalam contoh berikut, nama database adalahspectrum_db, nama skema eksternalspectrum_schema, dan nama tabel adalahtest.

create external table spectrum_db.spectrum_schema.test (c1 int) stored as parquet location 's3://amzn-s3-demo-bucket/myfolder/';

Jika database atau skema yang ditentukan tidak ada, tabel tidak dibuat, dan pernyataan mengembalikan kesalahan. Anda tidak dapat membuat tabel atau tampilan dalam database sistemtemplate0,, template1padb_harvest, atausys:internal.

Nama tabel harus berupa nama unik untuk skema yang ditentukan.

Untuk informasi selengkapnya tentang nama yang valid, lihatNama dan pengenal.

(column_name data_type)

Nama dan tipe data dari setiap kolom yang sedang dibuat.

Panjang maksimum untuk nama kolom adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Anda dapat menggunakan UTF -8 karakter multibyte hingga maksimal empat byte. Anda tidak dapat menentukan nama kolom "$path" atau"$size". Untuk informasi selengkapnya tentang nama yang valid, lihatNama dan pengenal.

Secara default, Amazon Redshift membuat tabel eksternal dengan $path pseudocolumns dan. $size Anda dapat menonaktifkan pembuatan pseudocolumns untuk sesi dengan menyetel parameter spectrum_enable_pseudo_columns konfigurasi ke. false Untuk informasi selengkapnya, lihat Pseudokolom .

Jika pseudocolumns diaktifkan, jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.598. Jika pseudocolumns tidak diaktifkan, jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.600.

Jika Anda membuat “tabel lebar”, pastikan daftar kolom Anda tidak melebihi batas lebar baris untuk hasil perantara selama pemuatan dan pemrosesan kueri. Untuk informasi selengkapnya, lihat Catatan penggunaan.

Untuk perintah CREATE EXTERNAL TABLE AS, daftar kolom tidak diperlukan, karena kolom berasal dari kueri.

data_type

Jenis data berikut didukung:

  • SMALLINT (INT2)

  • INTEGER (INT, INT4)

  • BIGINT (INT8)

  • DECIMAL (NUMERIC)

  • REAL (FLOAT4)

  • DOUBLE PRECISION (FLOAT8)

  • BOOLEAN (BOOL)

  • CHAR (CHARACTER)

  • VARCHAR (CHARACTER VARYING)

  • VARBYTE(CHARACTERVARYING) — dapat digunakan dengan Parket dan file ORC data, dan hanya dengan tabel non-partisi.

  • DATE— dapat digunakan hanya dengan teks, Parket, atau file ORC data, atau sebagai kolom partisi.

  • TIMESTAMP

UntukDATE, Anda dapat menggunakan format seperti yang dijelaskan berikut. Untuk nilai bulan yang direpresentasikan menggunakan digit, format berikut didukung:

  • mm-dd-yyyyMisalnya,05-01-2017. Ini adalah opsi default.

  • yyyy-mm-dd, di mana tahun diwakili oleh lebih dari 2 digit. Misalnya, 2017-05-01.

Untuk nilai bulan yang diwakili menggunakan singkatan tiga huruf, format berikut didukung:

  • mmm-dd-yyyyMisalnya,may-01-2017. Ini adalah opsi default.

  • dd-mmm-yyyy, di mana tahun diwakili oleh lebih dari 2 digit. Misalnya, 01-may-2017.

  • yyyy-mmm-dd, di mana tahun diwakili oleh lebih dari 2 digit. Misalnya, 2017-may-01.

Untuk nilai tahun yang secara konsisten kurang dari 100, tahun dihitung dengan cara berikut:

  • Jika tahun kurang dari 70, tahun dihitung sebagai tahun ditambah 2000. Misalnya, tanggal 05-01-17 dalam mm-dd-yyyy format diubah menjadi. 05-01-2017

  • Jika tahun kurang dari 100 dan lebih besar dari 69, tahun dihitung sebagai tahun ditambah 1900. Misalnya tanggal 05-01-89 dalam mm-dd-yyyy format diubah menjadi. 05-01-1989

  • Untuk nilai tahun yang diwakili oleh dua digit, tambahkan angka nol utama untuk mewakili tahun dalam 4 digit.

Nilai stempel waktu dalam file teks harus dalam formatyyyy-mm-dd HH:mm:ss.SSSSSS, seperti yang ditunjukkan oleh nilai stempel waktu berikut:. 2017-05-01 11:30:59.000000

Panjang VARCHAR kolom didefinisikan dalam byte, bukan karakter. Misalnya, kolom VARCHAR (12) dapat berisi 12 karakter single-byte atau 6 karakter dua-byte. Saat Anda menanyakan tabel eksternal, hasil dipotong agar sesuai dengan ukuran kolom yang ditentukan tanpa mengembalikan kesalahan. Untuk informasi selengkapnya, lihat Penyimpanan dan rentang.

Untuk performa terbaik, sebaiknya tentukan ukuran kolom terkecil yang sesuai dengan data Anda. Untuk menemukan ukuran maksimum dalam byte untuk nilai dalam kolom, gunakan LENGTH fungsi OCTET_. Contoh berikut mengembalikan ukuran maksimum nilai dalam kolom email.

select max(octet_length(email)) from users; max --- 62
PARTITIONEDOLEH (col_name data_type [,...])

Sebuah klausa yang mendefinisikan tabel dipartisi dengan satu atau lebih kolom partisi. Direktori data terpisah digunakan untuk setiap kombinasi yang ditentukan, yang dapat meningkatkan kinerja kueri dalam beberapa keadaan. Kolom yang dipartisi tidak ada dalam data tabel itu sendiri. Jika Anda menggunakan nilai untuk col_name yang sama dengan kolom tabel, Anda mendapatkan kesalahan.

Setelah membuat tabel yang dipartisi, ubah tabel menggunakan ADD PARTITION pernyataanALTER TABLE... untuk mendaftarkan partisi baru ke katalog eksternal. Saat Anda menambahkan partisi, Anda menentukan lokasi subfolder di Amazon S3 yang berisi data partisi.

Misalnya, jika tabel spectrum.lineitem_part didefinisikan denganPARTITIONED BY (l_shipdate date), jalankan ALTER TABLE perintah berikut untuk menambahkan partisi.

ALTER TABLE spectrum.lineitem_part ADD PARTITION (l_shipdate='1992-01-29') LOCATION 's3://spectrum-public/lineitem_partition/l_shipdate=1992-01-29';

Jika Anda menggunakan CREATE EXTERNAL TABLE AS, Anda tidak perlu menjalankan ALTERTABLE... ADDPARTITION. Amazon Redshift secara otomatis mendaftarkan partisi baru di katalog eksternal. Amazon Redshift juga secara otomatis menulis data yang sesuai ke partisi di Amazon S3 berdasarkan kunci partisi atau kunci yang ditentukan dalam tabel.

Untuk melihat partisi, kueri tampilan SVV_EXTERNAL_PARTITIONS sistem.

catatan

Untuk perintah CREATE EXTERNAL TABLE AS, Anda tidak perlu menentukan tipe data kolom partisi karena kolom ini berasal dari kueri.

ROWFORMATDELIMITEDformat baris

Klausa yang menentukan format data yang mendasarinya. Nilai yang mungkin untuk rowformat adalah sebagai berikut:

  • LINESTERMINATEDOLEH 'delimiter'

  • FIELDSTERMINATEDOLEH 'delimiter'

Tentukan satu ASCII karakter untuk 'pembatas'. Anda dapat menentukan ASCII karakter non-cetak menggunakan oktal, dalam format di '\ ddd'mana dadalah digit oktal (0-7) hingga '\ 177'. Contoh berikut menentukan BEL (bel) karakter menggunakan oktal.

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\007'

Jika ROW FORMAT dihilangkan, format defaultnya adalah DELIMITED FIELDS TERMINATED BY '\ A' (awal heading) dan LINES TERMINATED BY'\n'(baris baru).

ROWFORMATSERDE'serde_name'
[WITHSERDEPROPERTIES('property_name' = 'property_value' [,...])]

Klausa yang menentukan SERDE format untuk data yang mendasarinya.

'serde_name'

Nama dari SerDe. Anda dapat menentukan format berikut:

  • org.apache.hadoop.hive.serde2. RegexSerDe

  • com.amazonaws.glue.serde. GrokSerDe

  • org.apache.hadoop.hive.serde2.o penCSVSerde

    Parameter ini mendukung SerDe properti berikut untuk OpenCSVSerde:

    'wholeFile' = 'true'

    Atur wholeFile properti true untuk mengurai karakter baris baru dengan benar (\n) dalam string yang dikutip untuk permintaan Terbuka. CSV

  • org.openx.data.jsonserde. JsonSerDe

    • Ini JSON SERDE juga mendukung file Ion.

    • JSONHarus terbentuk dengan baik.

    • Stempel waktu dalam Ion dan JSON harus menggunakan format ISO86 01.

    • Parameter ini mendukung SerDe properti berikut untuk JsonSerDe:

      'strip.outer.array'='true'

      Memproses JSON Ion/file yang berisi satu array yang sangat besar tertutup dalam tanda kurung luar ([...]) seolah-olah berisi beberapa JSON catatan dalam array.

  • com.amazon.ionhiveserde. IonHiveSerDe

    Format Amazon menyediakan ION format teks dan biner, selain tipe data. Untuk tabel eksternal yang mereferensikan data dalam ION format, Anda memetakan setiap kolom di tabel eksternal ke elemen yang sesuai dalam data ION format. Untuk informasi lebih lanjut, lihat Amazon Ion. Anda juga perlu menentukan format input dan output.

WITHSERDEPROPERTIES('property_name' = 'property_value' [,...])]

Secara opsional, tentukan nama dan nilai properti, dipisahkan dengan koma.

Jika ROW FORMAT dihilangkan, format defaultnya adalah DELIMITED FIELDS TERMINATED BY '\ A' (awal heading) dan LINES TERMINATED BY'\n'(baris baru).

STOREDSebagai file_format

Format file untuk file data.

Format yang valid adalah sebagai berikut:

  • PARQUET

  • RCFILE(untuk data yang ColumnarSerDe hanya menggunakan, tidak LazyBinaryColumnarSerDe)

  • SEQUENCEFILE

  • TEXTFILE(untuk file teks, termasuk JSON file).

  • ORC

  • AVRO

  • INPUTFORMAT'input_format_classname' 'output_format_classname' OUTPUTFORMAT

Perintah CREATE EXTERNAL TABLE AS hanya mendukung dua format file, TEXTFILE danPARQUET.

Untuk INPUTFORMAT danOUTPUTFORMAT, tentukan nama kelas, seperti contoh berikut menunjukkan.

'org.apache.hadoop.mapred.TextInputFormat'
LOCATION{'s3://ember/folder /' | 's3://ember/manifest_file '}

Jalur ke bucket atau folder Amazon S3 yang berisi file data atau file manifes yang berisi daftar jalur objek Amazon S3. Ember harus berada di AWS Wilayah yang sama dengan cluster Amazon Redshift. Untuk daftar AWS Wilayah yang didukung, lihatKeterbatasan Amazon Redshift Spectrum.

Jika jalur menentukan bucket atau folder, misalnya's3://amzn-s3-demo-bucket/custdata/', Redshift Spectrum memindai file di bucket atau folder tertentu dan subfolder apa pun. Redshift Spectrum mengabaikan file dan file tersembunyi yang dimulai dengan titik atau garis bawah.

Jika jalur menentukan file manifes, 's3://bucket/manifest_file' argumen harus secara eksplisit mereferensikan satu file — misalnya,. 's3://amzn-s3-demo-bucket/manifest.txt' Itu tidak dapat mereferensikan key prefix.

Manifes adalah file teks dalam JSON format URL yang mencantumkan setiap file yang akan dimuat dari Amazon S3 dan ukuran file, dalam byte. URLTermasuk nama bucket dan path objek lengkap untuk file. File yang ditentukan dalam manifes dapat berada di bucket yang berbeda, tetapi semua bucket harus berada di AWS Wilayah yang sama dengan cluster Amazon Redshift. Jika file terdaftar dua kali, file dimuat dua kali. Contoh berikut menunjukkan JSON untuk manifes yang memuat tiga file.

{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }

Anda dapat membuat penyertaan file tertentu wajib. Untuk melakukan ini, sertakan mandatory opsi di tingkat file dalam manifes. Saat Anda menanyakan tabel eksternal dengan file wajib yang hilang, SELECT pernyataan gagal. Pastikan bahwa semua file yang termasuk dalam definisi tabel eksternal ada. Jika tidak semuanya ada, kesalahan muncul yang menunjukkan file wajib pertama yang tidak ditemukan. Contoh berikut menunjukkan JSON untuk manifes dengan mandatory opsi disetel ketrue.

{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "mandatory":true, "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "mandatory":false, "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }

Untuk mereferensikan file yang dibuat menggunakanUNLOAD, Anda dapat menggunakan manifes yang dibuat menggunakan UNLOAD MANIFEST parameter. File manifes kompatibel dengan file manifes untukCOPYdari Amazon S3, tetapi menggunakan kunci yang berbeda. Kunci yang tidak digunakan diabaikan.

TABLEPROPERTIES('property_name' = 'property_value' [,...])

Sebuah klausa yang menetapkan definisi tabel untuk properti tabel.

catatan

Properti tabel peka huruf besar/kecil.

'compression_type'=' nilai '

Properti yang menetapkan jenis kompresi yang akan digunakan jika nama file tidak berisi ekstensi. Jika Anda mengatur properti ini dan ada ekstensi file, ekstensi diabaikan dan nilai yang ditetapkan oleh properti digunakan. Nilai yang valid untuk jenis kompresi adalah sebagai berikut:

  • bzip2

  • gzip

  • none

  • tajam

'data_cleansing_enabled'='benar/salah'

Properti ini menetapkan apakah penanganan data aktif untuk tabel. Ketika 'data_cleansing_enabled' disetel ke true, penanganan data aktif untuk tabel. Ketika 'data_cleansing_enabled' disetel ke false, penanganan data tidak aktif untuk tabel. Berikut ini adalah daftar properti penanganan data tingkat tabel yang dikendalikan oleh properti ini:

  • column_count_mismatch_handling

  • invalid_char_handling

  • numeric_overflow_handling

  • replacement_char

  • surplus_char_handling

Sebagai contoh, lihat Contoh penanganan data.

'invalid_char_handling'=' nilai '

Menentukan tindakan untuk melakukan ketika hasil query berisi nilai-nilai karakter UTF -8 tidak valid. Anda dapat menentukan tindakan berikut:

DISABLED

Tidak melakukan penanganan karakter yang tidak valid.

FAIL

Membatalkan kueri yang mengembalikan data yang berisi nilai -8 yang tidak validUTF.

SET_KE_ NULL

Mengganti nilai UTF -8 yang tidak valid dengan null.

DROP_ROW

Mengganti setiap nilai di baris dengan null.

REPLACE

Mengganti karakter yang tidak valid dengan karakter pengganti yang Anda tentukan menggunakan. replacement_char

'replacement_char'=' karakter '

Menentukan karakter pengganti untuk digunakan ketika Anda mengatur invalid_char_handling keREPLACE.

'numeric_overflow_handling'='nilai'

Menentukan tindakan untuk melakukan ketika ORC data berisi integer (misalnya, BIGINT atau int64) yang lebih besar dari definisi kolom (misalnya, SMALLINT atau int16). Anda dapat menentukan tindakan berikut:

DISABLED

Penanganan karakter yang tidak valid dimatikan.

FAIL

Batalkan kueri saat data menyertakan karakter yang tidak valid.

SET_KE_ NULL

Setel karakter tidak valid ke null.

DROP_ROW

Tetapkan setiap nilai di baris ke null.

'surplus_bytes_handling'=' nilai '

Menentukan cara menangani data yang dimuat yang melebihi panjang tipe data yang ditentukan untuk kolom yang berisi VARBYTE data. Secara default, Redshift Spectrum menetapkan nilai ke null untuk data yang melebihi lebar kolom.

Anda dapat menentukan tindakan berikut yang akan dilakukan saat kueri mengembalikan data yang melebihi panjang tipe data:

SET_KE_ NULL

Mengganti data yang melebihi lebar kolom dengan null.

DISABLED

Tidak melakukan penanganan byte surplus.

FAIL

Membatalkan kueri yang mengembalikan data melebihi lebar kolom.

DROP_ROW

Jatuhkan semua baris yang berisi data melebihi lebar kolom.

TRUNCATE

Menghapus karakter yang melebihi jumlah maksimum karakter yang ditentukan untuk kolom.

'surplus_char_handling'=' nilai '

Menentukan cara menangani data yang dimuat yang melebihi panjang tipe data yang didefinisikan untuk kolom yang berisiVARCHAR,CHAR, atau data string. Secara default, Redshift Spectrum menetapkan nilai ke null untuk data yang melebihi lebar kolom.

Anda dapat menentukan tindakan berikut untuk melakukan ketika query mengembalikan data yang melebihi lebar kolom:

SET_KE_ NULL

Mengganti data yang melebihi lebar kolom dengan null.

DISABLED

Tidak melakukan penanganan karakter surplus.

FAIL

Membatalkan kueri yang mengembalikan data melebihi lebar kolom.

DROP_ROW

Mengganti setiap nilai di baris dengan null.

TRUNCATE

Menghapus karakter yang melebihi jumlah maksimum karakter yang ditentukan untuk kolom.

'column_count_mismatch_handling'='nilai'

Mengidentifikasi jika file berisi kurang atau lebih nilai untuk baris daripada jumlah kolom yang ditentukan dalam definisi tabel eksternal. Properti ini hanya tersedia untuk format file teks yang tidak terkompresi. Anda dapat menentukan tindakan berikut:

DISABLED

Penanganan ketidakcocokan jumlah kolom dimatikan.

FAIL

Gagal kueri jika ketidakcocokan jumlah kolom terdeteksi.

SET_KE_ NULL

Isi nilai yang hilang dengan NULL dan abaikan nilai tambahan di setiap baris.

DROP_ROW

Jatuhkan semua baris yang berisi kesalahan ketidakcocokan jumlah kolom dari pemindaian.

'numRows' = 'baris_hitungan'

Properti yang menetapkan numRows nilai untuk definisi tabel. Untuk secara eksplisit memperbarui statistik tabel eksternal, atur numRows properti untuk menunjukkan ukuran tabel. Amazon Redshift tidak menganalisis tabel eksternal untuk menghasilkan statistik tabel yang digunakan pengoptimal kueri untuk menghasilkan paket kueri. Jika statistik tabel tidak ditetapkan untuk tabel eksternal, Amazon Redshift menghasilkan rencana eksekusi kueri berdasarkan asumsi bahwa tabel eksternal adalah tabel yang lebih besar dan tabel lokal adalah tabel yang lebih kecil.

'skip.header.line.count'=' line_count '

Properti yang menetapkan jumlah baris untuk dilewati di awal setiap file sumber.

'serialization.null.format'=' '

Properti yang menentukan Spectrum harus mengembalikan NULL nilai ketika ada kecocokan persis dengan teks yang disediakan dalam bidang.

'orc.schema.resolution'='mapping_type'

Properti yang menetapkan jenis pemetaan kolom untuk tabel yang menggunakan format ORC data. Properti ini diabaikan untuk format data lainnya.

Nilai yang valid untuk jenis pemetaan kolom adalah sebagai berikut:

  • name

  • posisi

Jika properti orc.schema.resolution dihilangkan, kolom dipetakan berdasarkan nama secara default. Jika orc.schema.resolution disetel ke nilai apa pun selain 'nama' atau 'posisi', kolom dipetakan berdasarkan posisi. Untuk informasi selengkapnya tentang pemetaan kolom, lihatMemetakan kolom tabel eksternal ke ORC kolom.

catatan

COPYPerintah memetakan ke file ORC data hanya berdasarkan posisi. Properti tabel orc.schema.resolution tidak berpengaruh pada perilaku perintah. COPY

'write.parallel'='on/off'

Properti yang menetapkan apakah CREATE EXTERNAL TABLE AS harus menulis data secara paralel. Secara default, CREATE EXTERNAL TABLE AS menulis data secara paralel dengan beberapa file, sesuai dengan jumlah irisan di cluster. Opsi default aktif. Ketika 'write.parallel' disetel ke off, CREATE EXTERNAL TABLE AS menulis ke satu atau beberapa file data secara serial ke Amazon S3. Properti tabel ini juga berlaku untuk INSERT pernyataan berikutnya ke dalam tabel eksternal yang sama.

'write.maxfilesize.mb'='ukuran'

Properti yang menetapkan ukuran maksimum (dalam MB) dari setiap file yang ditulis ke Amazon S3 oleh CREATE EXTERNAL TABLE AS. Ukurannya harus berupa bilangan bulat yang valid antara 5 dan 6200. Ukuran file maksimum default adalah 6.200 MB. Properti tabel ini juga berlaku untuk INSERT pernyataan berikutnya ke dalam tabel eksternal yang sama.

'write.kms.key.id'=' nilai '

Anda dapat menentukan AWS Key Management Service kunci untuk mengaktifkan Server-Side Encryption (SSE) untuk objek Amazon S3, di mana nilai adalah salah satu dari berikut ini:

  • autountuk menggunakan AWS KMS kunci default yang disimpan di bucket Amazon S3.

  • kms-key yang Anda tentukan untuk mengenkripsi data.

select_statement

Pernyataan yang menyisipkan satu atau lebih baris ke dalam tabel eksternal dengan mendefinisikan kueri apa pun. Semua baris yang dihasilkan kueri ditulis ke Amazon S3 dalam format teks atau Parket berdasarkan definisi tabel.

Koleksi contoh tersedia diContoh.