BUAT TABEL SEPERTI
Berlaku untuk: Databricks SQL Databricks Runtime
Menentukan tabel menggunakan definisi dan metadata dari tabel atau tampilan yang ada.
Delta Lake memang mendukung CREATE TABLE LIKE
dalam Databricks SQL dan Databricks Runtime 13.3 LTS ke atas.
Di Databricks Runtime 12.2 LTS dan di bawahnya, gunakan CREATE TABLE AS.
Sintaks
CREATE TABLE [ IF NOT EXISTS ] table_name LIKE source_table_name [table_clauses]
table_clauses
{ USING data_source |
LOCATION path |
TBLPROPERTIES clause |
ROW FORMAT row_format |
STORED AS file_format } [...]
row_format
{ SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
{ DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
[ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
[ MAP KEYS TERMINATED BY map_key_terminated_char ]
[ LINES TERMINATED BY row_terminated_char ]
[ NULL DEFINED AS null_char ] } }
property_key
{ identifier [. ...] | string_literal }
Parameter
IF NOT EXISTS
Jika ditentukan, mengabaikan pernyataan jika
table_name
sudah ada.-
Nama tabel yang akan dibuat. Nama tidak boleh menyertakan spesifikasi temporal. Jika nama tidak memenuhi syarat, tabel dibuat dalam skema saat ini. Sebuah table_nama tidak harus ada.
-
Nama tabel yang definisinya disalin.
source_table_name
dantable_name
keduanya harus berada di metastore Apache Hive, atau keduanya berada di Unity Catalog. table_clauses
Menentukan format sumber data, lokasi, dan properti yang ditentukan pengguna secara opsional untuk tabel baru. Setiap sub klausul hanya dapat ditentukan satu kali.
Jalur LOKASI
Jalur ke direktori tempat data tabel disimpan, yang bisa menjadi jalur pada penyimpanan terdistribusi. Jika Anda menentukan lokasi, tabel baru menjadi tabel eksternal. Jika Anda tidak menentukan lokasi, tabel adalah tabel terkelola.
Anda tidak dapat membuat tabel eksternal di lokasi yang tumpang tindih dengan lokasi tabel terkelola.
-
Secara opsional, atur satu atau beberapa properti yang ditentukan pengguna.
MENGGUNAKAN data_source
Format file yang akan digunakan untuk tabel.
data_source
harus salah satu dari:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
Format file tambahan berikut yang akan digunakan untuk tabel didukung dalam Databricks Runtime:
ORC
HIVE
LIBSVM
- nama kelas yang sepenuhnya memenuhi syarat dari implementasi kustom
org.apache.spark.sql.sources.DataSourceRegister
.
Jika Anda tidak menentukan
USING
format tabel sumber akan diwariskan.Berikut ini berlaku untuk: Databricks Runtime
HIVE
didukung untuk membuat tabel Apache Hive SerDe di Databricks Runtime. Anda dapat menentukan Apache Hivefile_format
danrow_format
menggunakanOPTIONS
klausul, yang merupakan peta string kasus tidak peka huruf besar/kecil.option_keys
Adalah :FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
FORMAT BARIS row_format
Berlaku untuk: Databricks Runtime
Untuk menentukan SerDe kustom, atur ke
SERDE
dan tentukan nama kelas yang sepenuhnya memenuhi syarat dari properti SerDe kustom dan SerDe opsional. Untuk menggunakan SerDe native, atur keDELIMITED
dan tentukan pemisah, karakter escape, karakter null dan sebagainya.SERDEPROPERTIES
Daftar pasangan nilai kunci yang digunakan untuk menandai definisi SerDe.
BIDANG DIHENTIKAN OLEH
Tentukan pemisah kolom.
ESCAPED OLEH
Tentukan mekanisme escape.
ITEM KOLEKSI DIHENTIKAN OLEH
Menentukan pemisah item pengumpulan.
KUNCI PEMETAAN DIHENTIKAN OLEH
Menentukan pemisah kunci peta.
GARIS DIHENTIKAN OLEH
Menentukan pemisah baris.
NULL DITENTUKAN SEBAGAI
Menentukan nilai spesifik untuk
NULL
.DISIMPAN SEBAGAI
Format file untuk tabel. Format yang tersedia meliputi
TEXTFILE
,SEQUENCEFILE
,RCFILE
,ORC
,PARQUET
, danAVRO
. Atau, Anda dapat menentukan format input dan output Anda sendiri melaluiINPUTFORMAT
danOUTPUTFORMAT
. Hanya formatTEXTFILE
,SEQUENCEFILE
, danRCFILE
yang dapat digunakan denganROW FORMAT SERDE
dan hanyaTEXTFILE
yang dapat digunakan denganROW FORMAT DELIMITED
.
Catatan
Bergantung pada sumber data dan target tidak semua properti tabel dapat ditransfer.
CREATE TABLE LIKE
ketika sumbernya adalah Delta Lake Table:
Fitur/Properti | Target adalah Tabel non-Delta | Target adalah Tabel Delta |
---|---|---|
KOMENTAR | Ya | Ya |
Kolom | Ya | Ya |
Kolom partisi | Ya | Ya |
Konfigurasi | Tidak | Ya |
Batasan Tabel | Tidak Berlaku | Ya |
Protokol Delta | Tidak Berlaku | Ya |
CREATE TABLE LIKE
ketika sumbernya bukan Delta Lake Table:
Fitur/Properti | Target adalah Tabel non-Delta | Target adalah Tabel Delta |
---|---|---|
KOMENTAR | Ya | Ya |
Kolom | Ya | Ya |
Kolom partisi | Ya | Ya |
Konfigurasi | Ya | Ya |
Batasan Tabel | Tidak | Ya |
Protokol Delta | Tidak (Protokol Default Saat Ini untuk sesi tersebut) | Ya |
Contoh
-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/mnt/data_files';
-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/mnt/csv_files';