COPY INTO

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Bir dosya konumundaki verileri Delta tablosuna yükler. Bu yeniden denenebilir ve bir kez etkili bir işlemdir. Zaten yüklenmiş olan kaynak konumdaki dosyalar atlanır. Dosyalar yüklendikten sonra değiştirilmiş olsa bile bu durum geçerlidir. Örnekler için bkz. COPY INTOkullanarak yaygın veri yükleme desenleri.

Sözdizimi

COPY INTO target_table [ BY POSITION | ( col_name [ , <col_name> ... ] ) ]
  FROM { source_clause |
         ( SELECT expression_list FROM source_clause ) }
  FILEFORMAT = data_source
  [ VALIDATE [ ALL | num_rows ROWS ] ]
  [ FILES = ( file_name [, ...] ) | PATTERN = glob_pattern ]
  [ FORMAT_OPTIONS ( { data_source_reader_option = value } [, ...] ) ]
  [ COPY_OPTIONS ( { copy_option = value } [, ...] ) ]

source_clause
  source [ WITH ( [ CREDENTIAL { credential_name |
                                 (temporary_credential_options) } ]
                  [ ENCRYPTION (encryption_options) ] ) ]

Parametreler

  • target_table

    Var olan bir Delta tablosunu tanımlar. target_table zamansal belirtim veya seçenek belirtimi içermemelidir.

    Tablo adı aşağıdaki gibi delta.`/path/to/table` bir konum biçiminde sağlanmışsa Unity Kataloğu, yazılmakta olan konumlara erişimi yönetebilir. Dış konuma şu şekilde yazabilirsiniz:

    • Konumu dış konum olarak tanımlamak ve o dış konum üzerinde WRITE FILES izinlerine sahip olmak.
    • Adlandırılmış depolama kimlik bilgileri üzerinde, WRITE FILES kullanarak bir konuma yazma yetkisi sağlayan izinlere sahip olma: COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)

    Diğer ayrıntılar için bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamasına bağlanma .

  • BY POSITION | ( col_name [ , <col_name> ... ] )

    Kaynak sütunları sıralı konuma göre hedef tablo sütunlarıyla eşleştirir. Eşleşen sütunların tür ataması otomatik olarak yapılır.

    Bu parametre yalnızca üst bilgisiz CSV dosya biçimi için desteklenir. FILEFORMAT = CSV belirtmek zorundasınız. FORMAT_OPTIONS ayrıca ("headers" = "false") olarak ayarlanmalıdır (FORMAT_OPTIONS ("headers" = "false") varsayılandır).

    Söz dizimi seçeneği 1: BY POSITION

    • Kaynak sütunları hedef tablo sütunlarıyla sıralı konuma göre otomatik olarak eşleştirir.
      • Varsayılan isim eşleştirme, eşleştirme için kullanılmaz.
      • IDENTITY ve GENERATED hedef tablonun sütunları, kaynak sütunlarla eşleştirilirken yoksayılır.
      • Kaynak sütunların sayısı filtrelenen hedef tablo sütunlarına eşit değilse hata COPY INTO verir.

    Söz dizimi seçeneği 2: ( col_name [ , <col_name> ... ] )

    • Kaynak sütunları, virgülle ayrılmış parantez içinde bir hedef tablo sütun adı listesi kullanarak göreli konuma göre belirtilen hedef tablo sütunlarıyla eşleştirir.
      • Özgün tablo sütun sırası ve sütun adları eşleştirme için kullanılmaz.
      • IDENTITY sütun ve GENERATED sütunlar sütun adı listesinde belirtilemez, aksi takdirde COPY INTO hataya neden olur.
      • Belirtilen sütunlar çoğaltılamaz.
      • Kaynak sütun sayısı belirtilen tablo sütunlarına COPY INTO eşit olmadığında bir hata oluşur.
      • Sütun adı listesinde belirtilmeyen sütunlar için, eğer mevcutsa, varsayılan değerleri COPY INTO atar; aksi takdirde NULL atar. Herhangi bir sütun null olamazsa, COPY INTO bir hata oluşturur.
  • source

    Verilerin yüklenecek dosya konumu. Bu konumdaki dosyaların içinde FILEFORMATbelirtilen biçime sahip olması gerekir. Konum, URI biçiminde sağlanır.

    Kaynak konuma erişim şu şekilde sağlanabilir:

    • credential_name

      Depolama konumuna erişmek veya bu konuma yazmak için kullanılan kimlik bilgilerinin isteğe bağlı adı. Bu kimlik bilgilerini yalnızca dosya konumu bir dış konuma dahil değilse kullanırsınız. Bkz. credential_name.

    • Satır içi geçici kimlik bilgileri.

    • Kaynak konumunu dış konum olarak tanımlama ve Unity Kataloğu ile dış konum üzerinde READ FILES izinlerine sahip olma.
    • Unity Kataloğu aracılığıyla bir konumdan okuma yetkisi sağlayan izinlere sahip READ FILES adlandırılmış depolama kimlik bilgilerini kullanma.

    Yol, kullanma izniniz olan bir dış konum olarak tanımlanmışsa satır içi veya adlandırılmış kimlik bilgileri sağlamanız gerekmez. Diğer ayrıntılar için bkz. Dış konumlara genel bakış .

    Not olarak belirtin

    Kaynak dosya yolu bir kök yolsa, lütfen dosya yolunun sonuna eğik çizgi (/) ekleyin; örneğin, s3://my-bucket/.

    Kabul edilen kimlik bilgisi seçenekleri şunlardır:

    • ADLS ve Azure Blob Depolama için AZURE_SAS_TOKEN
    • AWS_ACCESS_KEY, AWS_SECRET_KEYve AWS_SESSION_TOKEN AWS S3 için

    Kabul edilen şifreleme seçenekleri şunlardır:

    • TYPE = 'AWS_SSE_C', ve MASTER_KEY AWS S3 için

bkz.geçici kimlik bilgileriyle kullanarak veri yükleme .

  • SELECT expression_list

    Delta tablosuna kopyalamadan önce kaynak verilerden belirtilen sütunları veya ifadeleri seçer. SELECT ifadelerle kullanabileceğiniz şeyler, pencere işlemleri de dahil olmak üzere her şey olabilir. Toplama ifadelerini yalnızca genel toplamalar için kullanabilirsiniz; bu söz dizimine sahip sütunlarda kullanamazsınız GROUP BY .

  • FILEFORMAT = data_source

    Yüklenecek kaynak dosyaların biçimi. Bir tanesi CSV, JSON, AVRO, ORC, PARQUET, TEXT, BINARYFILE.

  • VALIDATE

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 10.4 LTS ve üzeri

    Bir tabloya yüklenecek veriler doğrulanır ancak tabloya yazılmaz. Bu doğrulamalar şunlardır:

    • Verilerin ayrıştırılabilir olup olmadığı.
    • Şemanın tablonunkiyle eşleşip eşleşmediği veya şemanın geliştirilmesi gerekip gerekmediği.
    • Tüm boş olabilirlik ve denetim kısıtlamalarının karşılanıp karşılanmadığı.

    Varsayılan değer, yüklenecek tüm verileri doğrulamaktır. anahtar sözcüğüyle ROWS doğrulanacak bir dizi satır sağlayabilirsiniz, örneğin VALIDATE 15 ROWS. COPY INTO deyimi, ROWS anahtar sözcüğü ile 50'den az bir sayı kullanıldığında 50 satır veya daha az olan verilerin önizlemesini sağlar.

  • FILES

    Yüklenecek dosya adlarının listesi ve 1000 dosya sınırı. PATTERN ile belirtilemez.

  • PATTERN

    Kaynak dizinden yüklenecek dosyaları tanımlayan bir glob deseni. FILES ile belirtilemez.

    Desen Açıklama
    ? Herhangi bir tek karakterle eşleşir
    * Sıfır veya daha çok sayıda karakterle eşleşir
    [abc] {a,b,c} karakter kümesindeki tek bir karakterle eşleşir.
    [a-z] {a...z} karakter aralığındaki tek bir karakterle eşleşir.
    [^a] {a} karakter kümesinden veya aralıktan olmayan tek bir karakterle eşleşir. Karakterin ^ açılış parantezinin hemen sağında yer alması gerektiğini unutmayın.
    {ab,cd} {ab, cd} dize kümesindeki bir dizeyle eşleşir.
    {ab,c{de, fh}} {ab, cde, cfh} dize kümesindeki bir dizeyle eşleşir.
  • FORMAT_OPTIONS

    Belirtilen biçim için Apache Spark veri kaynağı okuyucusna geçirilecek seçenekler. Bkz. Her dosya biçimi için biçim seçenekleri .

  • COPY_OPTIONS

    COPY INTO komutunun çalışmasını denetleme seçenekleri.

    • force: boolean, varsayılan false. true olarak ayarlandığında, idemponansi devre dışı bırakılır ve dosyalar daha önce yüklenmiş olup olmadıklarına bakılmaksızın yüklenir.
    • mergeSchema: boolean, varsayılan false. olarak ayarlanırsa true, şema gelen verilere göre geliştirilebilir.

Eşzamanlı olarak COPY INTO çağır

COPY INTO aynı tabloda eşzamanlı çağrıları destekler. Eşzamanlı olarak COPY INTO dosya setleri üzerinde çağrıldığı sürece, her çağrının başarıyla sonuçlanması gerekir, aksi takdirde bir işlem çakışması ile karşılaşabilirsiniz. COPY INTO performansı geliştirmek için eşzamanlı olarak çağrılmamalıdır; birden çok dosya içeren tek COPY INTO bir komut genellikle her birinde tek bir dosyayla eşzamanlı COPY INTO komutları çalıştırmaktan daha iyi performans gösterir. COPY INTO şu durumlarda eşzamanlı olarak çağrılabilir:

  • Birden çok veri üreticisinin koordine etmek için kolay bir yolu yoktur ve tek bir çağrı yapamaz.
  • Çok büyük bir dizin, alt dizinler halinde sırayla işlenebiliyorsa. Çok fazla sayıda dosya içeren dizinleri alırken Databricks mümkün olduğunda Otomatik Yükleyici'nin kullanılmasını önerir.

Dosya meta verilerine erişme

Dosya tabanlı veri kaynaklarının meta verilerine erişmeyi öğrenmek için bkz . Dosya meta verileri sütunu.

Biçim seçenekleri

Her dosya biçimine (JSON, CSV, XML, Parquet, Avro, metin, ORC ve ikili) özgü seçenekler için bkz. DataFrameReader seçenekleri.