Aracılığıyla paylaş


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 INTOiç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_dataDelta 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/targetbir 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 ignoreCorruptFilestrueFORMAT_OPTIONSbu dosyalar atlanabilir.

Komutun sonucu, sütundaki COPY INTOnum_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 INTOizlenmez, bu nedenle bozulma düzeltilirse sonraki bir çalıştırmada yeniden yüklenebilirler. Modda çalıştırarak COPY INTOVALIDATE 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.