COPY INTO kullanan yaygın veri yükleme desenleri
Dosya kaynaklarından Delta Lake'e veri yüklemek için kullanmaya COPY INTO
yönelik yaygın desenleri öğrenin.
kullanmak COPY INTO
için birçok seçenek vardır. Bu desenlerle birlikte COPY INTO ile geçici kimlik bilgilerini de kullanabilirsiniz.
Tüm seçeneklerin tam başvurusu için bkz . COPY INTO .
COPY INTO için hedef tablolar oluşturma
COPY INTO
mevcut bir Delta tablosunu hedeflemelidir. Databricks Runtime 11.3 LTS ve üzerinde, bu tabloların şemasını ayarlamak, şema evrimini destekleyen biçimler için isteğe bağlıdır:
CREATE TABLE IF NOT EXISTS my_table
[(col_1 col_1_type, col_2 col_2_type, ...)]
[COMMENT <table-description>]
[TBLPROPERTIES (<table-properties>)];
ile COPY INTO
şemayı çıkarsamak için ek seçenekler geçirmeniz gerektiğini unutmayın:
COPY INTO my_table
FROM '/path/to/files'
FILEFORMAT = <format>
FORMAT_OPTIONS ('inferSchema' = 'true')
COPY_OPTIONS ('mergeSchema' = 'true');
Aşağıdaki örnek adlı my_pipe_data
şemasız bir Delta tablosu oluşturur ve üst bilgiyle kanalla ayrılmış bir CSV yükler:
CREATE TABLE IF NOT EXISTS my_pipe_data;
COPY INTO my_pipe_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path'
FILEFORMAT = CSV
FORMAT_OPTIONS ('mergeSchema' = 'true',
'delimiter' = '|',
'header' = 'true')
COPY_OPTIONS ('mergeSchema' = 'true');
COPY INTO ile JSON verilerini yükleme
Aşağıdaki örnek, Azure Data Lake Storage 2. Nesil(ADLS 2. Nesil) içindeki beş dosyadan JSON verilerini adlı my_json_data
Delta tablosuna yükler. Bu tablonun yürütülebilmesi için önce COPY INTO
oluşturulması gerekir. Herhangi bir veri dosyalardan birinden zaten yüklenmişse, bu dosya için veriler yeniden yüklenmez.
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path'
FILEFORMAT = JSON
FILES = ('f1.json', 'f2.json', 'f3.json', 'f4.json', 'f5.json')
-- The second execution will not copy any data since the first command already loaded the data
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path'
FILEFORMAT = JSON
FILES = ('f1.json', 'f2.json', 'f3.json', 'f4.json', 'f5.json')
COPY INTO ile Avro verilerini yükleme
Aşağıdaki örnek, deyiminin bir parçası olarak ek SQL ifadeleri kullanarak ADLS 2. Nesil'de SELECT
Avro verilerini yükler.
COPY INTO my_delta_table
FROM (SELECT to_date(dt) dt, event as measurement, quantity::double
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path')
FILEFORMAT = AVRO
COPY INTO ile CSV dosyalarını yükleme
Aşağıdaki örnek, altındaki abfss://container@storageAccount.dfs.core.windows.net/base/path/folder1
Azure Data Lake Storage 2. Nesil'deki CSV dosyalarını konumundaki abfss://container@storageAccount.dfs.core.windows.net/deltaTables/target
bir Delta tablosuna yükler.
COPY INTO delta.`abfss://container@storageAccount.dfs.core.windows.net/deltaTables/target`
FROM (SELECT key, index, textData, 'constant_value'
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path')
FILEFORMAT = CSV
PATTERN = 'folder1/file_[a-g].csv'
FORMAT_OPTIONS('header' = 'true')
-- The example below loads CSV files without headers in ADLS Gen2 using COPY INTO.
-- By casting the data and renaming the columns, you can put the data in the schema you want
COPY INTO delta.`abfss://container@storageAccount.dfs.core.windows.net/deltaTables/target`
FROM (SELECT _c0::bigint key, _c1::int index, _c2 textData
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path')
FILEFORMAT = CSV
PATTERN = 'folder1/file_[a-g].csv'
Verileri yüklerken bozuk dosyaları yoksayma
Yüklediğiniz veriler bir bozulma sorunu nedeniyle okunamıyorsa, içinde olarak ayarlanarak ignoreCorruptFiles
true
FORMAT_OPTIONS
bu dosyalar atlanabilir.
Komutun sonucu, sütundaki COPY INTO
num_skipped_corrupt_files
bozulma nedeniyle kaç dosyanın atlandığını döndürür. Bu ölçüm, Delta tablosunda çalıştırıldıktan DESCRIBE HISTORY
sonra altındaki numSkippedCorruptFiles
sütunda da gösteriliroperationMetrics
.
Bozuk dosyalar tarafından COPY INTO
izlenmez, bu nedenle bozulma düzeltilirse sonraki bir çalıştırmada yeniden yüklenebilirler. Modda çalıştırarak COPY INTO
VALIDATE
hangi dosyaların bozuk olduğunu görebilirsiniz.
COPY INTO my_table
FROM '/path/to/files'
FILEFORMAT = <format>
[VALIDATE ALL]
FORMAT_OPTIONS ('ignoreCorruptFiles' = 'true')
Not
ignoreCorruptFiles
Databricks Runtime 11.3 LTS ve üzerinde kullanılabilir.