Aracılığıyla paylaş


Depolamadan alma

komutu, .ingest into verileri bir veya daha fazla bulut depolama dosyasından "çekerek" bir tabloya alır. Örneğin, komut Azure Blob Depolama 1000 CSV biçimli blob alabilir, ayrıştırabilir ve bunları tek bir hedef tabloya alabilir. Veriler, mevcut kayıtları etkilemeden ve tablonun şemasını değiştirmeden tabloya eklenir.

Not

Bu alım yöntemi keşif ve prototip oluşturma için tasarlanmıştır. Üretim veya yüksek hacimli senaryolarda kullanmayın.

İzinler

Bu komutu çalıştırmak için en azından Tablo Alma izinlerine sahip olmanız gerekir.

Sözdizimi

.ingest[async] into table TableName SourceDataLocator [with ( IngestionPropertyName = IngestionPropertyValue [, ...] ] )

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
async string Belirtilirse, komut hemen geri döner ve arka planda alıma devam eder. Komutun sonuçları, daha sonra alma tamamlanma durumunu ve sonuçlarını almak için komutuyla birlikte .show operation kullanılabilecek bir OperationId değer içerir.
TableName string ✔️ Verilerin alındığı tablonun adı. Tablo adı her zaman bağlamdaki veritabanına göredir. Şema eşleme nesnesi sağlanmazsa, bağlam içindeki veritabanının şeması kullanılır.
SourceDataLocator string ✔️ Depolama bağlantı dizesi tek veya virgülle ayrılmış bir liste. Tek bir bağlantı dizesi, depolama hesabı tarafından barındırılan tek bir dosyaya başvurmalıdır. Birden çok dosya alımı, birden çok bağlantı dizesi belirtilerek veya bir dış tablonun sorgusundan alınarak yapılabilir.

Not

SourceDataLocators için belirsiz dize değişmez değerlerini kullanmanızı öneririz. Hizmet, iç izlemelerde ve hata iletilerinde kimlik bilgilerini temizler.

Alma özellikleri

Önemli

  • Kuyruğa alınan veri alımı özellikleri kullanılarak toplu olarak alınır. Farklı ConstValue değerleri gibi daha farklı alım eşleme özellikleri kullanıldıkça, alma işlemi o kadar parçalanır ve bu da performans düşüşlerine yol açabilir.

Aşağıdaki tabloda Azure Veri Gezgini tarafından desteklenen özellikler listelenir, bunlar açıklanır ve örnekler sağlanır:

Özellik Açıklama Örnek
ingestionMapping Kaynak dosyadaki verilerin tablodaki gerçek sütunlara nasıl eşlendiğini gösteren dize değeri. Değeri ilgili format eşleme türüyle tanımlayın. Bkz. veri eşlemeleri. with (format="json", ingestionMapping = "[{\"column\":\"rownumber\", \"Properties\":{\"Path\":\"$.RowNumber\"}}, {\"column\":\"rowguid\", \"Properties\":{\"Path\":\"$.RowGuid\"}}]")
(kullanım dışı: avroMapping, csvMapping, jsonMapping)
ingestionMappingReference Adlandırılmış eşleme ilkesi nesnesi kullanılarak kaynak dosyadaki verilerin tablodaki gerçek sütunlara nasıl eşlendiğini gösteren dize değeri. Değeri ilgili format eşleme türüyle tanımlayın. Bkz. veri eşlemeleri. with (format="csv", ingestionMappingReference = "Mapping1")
(kullanım dışı: avroMappingReference, csvMappingReference, jsonMappingReference)
creationTime Alınan veri kapsamlarının oluşturma zamanında kullanılacak datetime değeri (ISO8601 dizesi olarak biçimlendirilir). Belirtilmezse geçerli değer (now()) kullanılır. Bekletme ilkesinin doğru şekilde uygulanması için eski verileri alırken varsayılan değerin geçersiz kılınması yararlı olur. Belirtildiğinde, hedef tablonun etkin Kapsam birleştirme ilkesindeki özelliğin belirtilen değerle hizalandığından emin olunLookback. with (creationTime="2017-02-13")
extend_schema Belirtildiyse komutuna tablonun şemasını genişletme talimatı veren bir Boole değeri (varsayılan olarak falseolarak kullanılır). Bu seçenek yalnızca ve .set-or-append komutları için .append geçerlidir. İzin verilen tek şema uzantılarının sonunda tabloya ek sütunlar eklenir. Özgün tablo şeması ise (a:string, b:int)geçerli bir şema uzantısı olabilir (a:string, b:int, c:datetime, d:string), ancak (a:string, c:datetime) geçerli olmaz
folder Sorgudan alma komutları için tabloya atanacak klasör. Tablo zaten varsa, bu özellik tablonun klasörünü geçersiz kılar. with (folder="Tables/Temporary")
format Veri biçimi (desteklenen veri biçimlerine bakın). with (format="csv")
ingestIfNotExists Tabloda aynı değere sahip bir etiketle etiketlenmiş veriler varsa, belirtilirse alımın başarılı olmasını engelleyen bir ingest-by: dize değeri. Bu, etkili veri alımını sağlar. Daha fazla bilgi için bkz . alma ölçütü: etiketler. Özellikler with (ingestIfNotExists='["Part0001"]', tags='["ingest-by:Part0001"]') , etiketli ingest-by:Part0001 veriler zaten varsa geçerli alımı tamamlamadığını gösterir. Henüz yoksa, bu yeni alımın bu etiket ayarlanmış olması gerekir (gelecekte aynı verileri yeniden alma girişiminde bulunulması durumunda.)
ignoreFirstRecord olarak ayarlanırsa truealımın her dosyanın ilk kaydını yoksayması gerektiğini gösteren boole değeri. Bu özellik, dosyadaki CSVilk kayıt sütun adlarıysa, ve benzer biçimlerdeki dosyalar için kullanışlıdır. Varsayılan olarak varsayılır false . with (ignoreFirstRecord=false)
policy_ingestiontime Belirtilirse, bu komut tarafından oluşturulan bir tabloda Alma Zamanı İlkesi'nin etkinleştirilip etkinleştirilmeydiğini açıklayan boole değeri. Varsayılan değer: true. with (policy_ingestiontime=false)
recreate_schema Belirtildiyse komutun tablonun şemasını yeniden oluşturup oluşturamayacağını açıklayan boole değeri. Bu özellik yalnızca komutu için .set-or-replace geçerlidir. Her ikisi de ayarlandıysa bu özellik özelliğinden extend_schema önceliklidir. with (recreate_schema=true)
tags JSON dizesi olarak biçimlendirilmiş, alınan verilerle ilişkilendirilecek etiketlerin listesi with (tags="['Tag1', 'Tag2']")
validationPolicy CSV biçimi kullanılarak temsil edilen verilerin alımı sırasında hangi doğrulamaların çalıştırıldığını gösteren bir JSON dizesi. Farklı seçeneklerin açıklaması için bkz . Veri alımı . with (validationPolicy='{"ValidationOptions":1, "ValidationImplications":1}') (bu aslında varsayılan ilkedir)
zipPattern ZIP arşivi olan depolama alanından veri alırken bu özelliği kullanın. Bu, ZIP arşivinde hangi dosyaların alındığını seçerken kullanılacak normal ifadeyi gösteren bir dize değeridir. Arşivdeki diğer tüm dosyalar yoksayılır. with (zipPattern="*.csv")

Kimlik doğrulaması ve yetkilendirme

Her depolama bağlantı dizesi, depolamaya erişim için kullanılacak yetkilendirme yöntemini gösterir. Yetkilendirme yöntemine bağlı olarak, alma işlemini gerçekleştirmek için sorumluya dış depolama üzerinde izin verilmesi gerekebilir.

Aşağıdaki tabloda desteklenen kimlik doğrulama yöntemleri ve dış depolamadan veri almak için gereken izinler listelenmektedir.

Kimlik doğrulama yöntemi Azure Blob Depolama / Data Lake Storage 2. Nesil Data Lake Storage 1. Nesil
Kim -liğe bürünme Depolama Blob Verileri Okuyucusu Okuyucu
Paylaşılan Erişim (SAS) belirteci Liste + Okuma Bu kimlik doğrulama yöntemi 1. Nesil'de desteklenmez.
Microsoft Entra erişim belirteci
Depolama hesabı erişim anahtarı Bu kimlik doğrulama yöntemi 1. Nesil'de desteklenmez.
Yönetilen kimlik Depolama Blob Verileri Okuyucusu Okuyucu

Döndürülenler

Komutun sonucu, komutu tarafından oluşturulan veri parçaları ("kapsamlar") kadar çok kaydı olan bir tablodur. Hiçbir veri parçası oluşturulmadıysa, boş (sıfır değerli) kapsam kimliğiyle tek bir kayıt döndürülür.

Adı Tür Açıklama
ExtentId guid komutu tarafından oluşturulan veri parçasının benzersiz tanımlayıcısı.
Öğe Yüklendi string Bu kayıtla ilgili bir veya daha fazla depolama dosyası.
Süre timespan Alma işleminin ne kadar sürdüğünü.
HasErrors bool Bu kaydın bir alma hatasını temsil edip etmediği.
OperationId guid İşlemi temsil eden benzersiz bir kimlik. komutuyla .show operation kullanılabilir.

Not

Bu komut, alınan tablonun şemasını değiştirmez. Gerekirse, veri alımı sırasında bu şemaya "zorunlu hale getirilir" (ek sütunlar yoksayılır ve eksik sütunlar null değer olarak kabul edilir).

Örnekler

Paylaşılan erişim imzasıyla Azure Blob Depolama

Aşağıdaki örnek, kümenize csv dosyaları olarak Azure Blob Depolama iki blob okumasını ve içindekileri tabloya Talmalarını sağlar. , ... her bloba okuma erişimi veren bir Azure Depolama paylaşılan erişim imzasını (SAS) temsil eder. SAS'nin hiçbir zaman kaydedilmediğinden emin olmak için karartılmış dizelerin ( h dize değerlerinin önünde) kullanıldığına da dikkat edin.

.ingest into table T (
    h'https://contoso.blob.core.windows.net/container/file1.csv?...',
    h'https://contoso.blob.core.windows.net/container/file2.csv?...'
)

Yönetilen kimlikle Azure Blob Depolama

Aşağıdaki örnekte, yönetilen kimlik kimlik doğrulaması kullanılarak Azure Blob Depolama bir CSV dosyasının nasıl okunduğu ve içeriğinin tabloya T nasıl alınduğu gösterilmektedir. Yönetilen kimlik doğrulama yöntemi hakkında ek bilgi için bkz . Yönetilen Kimlik Kimlik Doğrulamasına Genel Bakış.

.ingest into table T ('https://StorageAccount.blob.core.windows.net/Container/file.csv;managed_identity=802bada6-4d21-44b2-9d15-e66b29e4d63e')

Azure Data Lake Storage 2. Nesil

Aşağıdaki örnek, Azure Data Lake Storage 2. Nesil'den (ADLSv2) veri almak içindir. Burada (...) kullanılan kimlik bilgileri depolama hesabı kimlik bilgileridir (paylaşılan anahtar) ve dize gizlemeyi yalnızca bağlantı dizesi gizli bölümü için kullanırız.

.ingest into table T (
  'abfss://myfilesystem@contoso.dfs.core.windows.net/path/to/file1.csv;...'
)

Azure Data Lake Storage

Aşağıdaki örnek, Azure Data Lake Storage'dan (ADLS) tek bir dosya alıyor. ADLS'ye erişmek için kullanıcının kimlik bilgilerini kullanır (bu nedenle depolama URI'sine gizli dizi içeriyor gibi davranmanız gerekmez). Ayrıca alma özelliklerinin nasıl belirtileceğini de gösterir.

.ingest into table T ('adl://contoso.azuredatalakestore.net/Path/To/File/file1.ext;impersonate')
  with (format='csv')

Erişim anahtarına sahip Amazon S3

Aşağıdaki örnek, erişim anahtarı kimliği ve gizli dizi erişim anahtarı kullanarak Amazon S3'ten tek bir dosya alır.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AKIAIOSFODNN7EXAMPLE,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')
  with (format='csv')

Ön imzalı URL ile Amazon S3

Aşağıdaki örnek, Ön İmzalı URL kullanarak Amazon S3'ten tek bir dosya alır.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/file.csv?<<pre signed string>>')
  with (format='csv')