CREATE TABLE LIKE
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Varolan bir tablonun veya görünümün tanımını ve meta verilerini kullanarak bir tablo tanımlar.
Delta Lake, Databricks SQL ve Databricks Runtime 13.3 LTS ve üzeri sürümleri destekler CREATE TABLE LIKE
.
Databricks Runtime 12.2 LTS ve altında CREATE TABLE AS kullanın.
Sözdizimi
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 }
Parametreler
YOKSA
belirtildiyse, zaten varsa deyimini
table_name
yoksayar.-
Oluşturulacak tablonun adı. Ad bir zamansal belirtim içermemelidir. Ad uygun değilse, tablo geçerli şemada oluşturulur. Bir table_name zaten mevcut olmamalıdır.
-
Tanımı kopyalanan tablonun adı.
source_table_name
vetable_name
her ikisi de Hive meta veri deposunda veya her ikisi de Unity Kataloğu'nda olmalıdır. table_clauses
İsteğe bağlı olarak, yeni tablo için bir veri kaynağı biçimi, konum ve kullanıcı tanımlı özellikler belirtin. Her alt yan tümce yalnızca bir kez belirtilebilir.
KONUM yolu
Tablo verilerinin depolandığı dizinin yolu; dağıtılmış depolamada bir yol olabilir. Bir konum belirtirseniz, yeni tablo bir dış tabloya dönüşür. Konum belirtmezseniz, tablo yönetilen bir tablodur.
Yönetilen tabloların konumuyla çakışan konumlarda dış tablolar oluşturamazsınız.
-
İsteğe bağlı olarak bir veya daha fazla kullanıcı tanımlı özellik ayarlar.
data_source KULLANMA
Tablo için kullanılacak dosya biçimi.
data_source
şulerden biri olmalıdır:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
Tablo için kullanılacak aşağıdaki ek dosya biçimleri Databricks Runtime'da desteklenir:
ORC
HIVE
LIBSVM
- özel uygulamasının tam sınıf adı.
org.apache.spark.sql.sources.DataSourceRegister
Belirtmezseniz
USING
kaynak tablonun biçimi devralınır.Aşağıdakiler şunlar için geçerlidir: Databricks Runtime
HIVE
, Databricks Runtime'da Hive SerDe tablosu oluşturmak için desteklenir. Hive'a özgüfile_format
öğesini belirtebilir verow_format
büyük/küçük harfe duyarlı olmayan dize eşlemesi olan yan tümcesini kullanabilirsinizOPTIONS
. Şunlardıroption_keys
:FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
SATıR BIÇIMI row_format
Şunlar için geçerlidir: Databricks Runtime
Özel bir SerDe belirtmek için, özel bir SerDe'nin tam sınıf adını ve isteğe bağlı SerDe özelliklerini olarak ayarlayın
SERDE
ve belirtin. Yerel SerDe'yi kullanmak için sınırlayıcı, kaçış karakteri, null karakter vb. değerini ayarlayınDELIMITED
ve belirtin.SERDEPROPERTIES
SerDe tanımını etiketlemek için kullanılan anahtar-değer çiftlerinin listesi.
SONLANDıRıLAN ALANLAR
Sütun ayırıcısı tanımlayın.
KAÇTI
Kaçış mekanizmasını tanımlayın.
SONLANDıRıLAN KOLEKSIYON ÖĞELERI
Koleksiyon öğesi ayırıcısı tanımlayın.
SONLANDıRıLAN EŞLEME ANAHTARLARı
Eşleme anahtarı ayırıcısı tanımlayın.
SON VERİCİ SATıRLAR
Satır ayırıcısı tanımlayın.
NULL OLARAK TANıMLANMıŞ
için
NULL
belirli bir değeri tanımlayın.FARKLı DEPOLANIYOR
Tablonun dosya biçimi. Kullanılabilir biçimler ,
SEQUENCEFILE
,RCFILE
,ORC
,PARQUET
veAVRO
biçimlerini içerirTEXTFILE
. Alternatif olarak ve aracılığıylaINPUTFORMAT
OUTPUTFORMAT
kendi giriş ve çıkış biçimlerinizi belirtebilirsiniz. Yalnızca , veSEQUENCEFILE
RCFILE
biçimleriTEXTFILE
ileROW FORMAT SERDE
kullanılabilir ve yalnızcaTEXTFILE
ileROW FORMAT DELIMITED
kullanılabilir.
Notlar
Veri kaynağına ve hedefe bağlı olarak tabloların tüm özellikleri aktarılamaz.
CREATE TABLE LIKE
kaynak bir Delta Lake Tablosu olduğunda:
Özellik/Özellik | Hedef Delta Olmayan Tablo | Hedef bir Delta Tablosudur |
---|---|---|
YORUM | Yes | Yes |
Sütunlar | Yes | Yes |
Bölüm sütunları | Yes | Yes |
Yapılandırma | Hayır | Evet |
Tablo Kısıtlaması | Geçerli değil | Yes |
Delta Protokolü | Geçerli değil | Yes |
CREATE TABLE LIKE
kaynak bir Delta Lake Tablosu olmadığında:
Özellik/Özellik | Hedef Delta Olmayan Tablo | Hedef bir Delta Tablosudur |
---|---|---|
YORUM | Yes | Yes |
Sütunlar | Yes | Yes |
Bölüm sütunları | Yes | Yes |
Yapılandırma | Yes | Yes |
Tablo Kısıtlaması | Hayır | Evet |
Delta Protokolü | Hayır (Bu oturum için Geçerli Varsayılan Protokol) | Yes |
Örnekler
-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/path/to/data_files';
-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/path/to/csv_files';