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 blobu alabilir, ayrıştırabilir ve tek bir hedef tabloya birlikte alabilir. Veriler, mevcut kayıtlar etkilenmeden ve tablonun şeması değiştirilmeden tabloya eklenir.

Not

Bu alma 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 iznine sahip olmanız gerekir.

Syntax

.ingest [async] intotableTableNameSourceDataLocator [with(IngestionPropertyName=IngestionPropertyValue [, ...] )]

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

Parametreler

Ad Tür Gerekli Açıklama
async string Belirtilirse, komut hemen döndürür ve arka planda alıma devam eder. Komutun sonuçları, daha sonra alma tamamlanma durumunu ve sonuçlarını almak için komutuyla .show operation birlikte 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ı dizelerinin tek veya virgülle ayrılmış listesi. Tek bir bağlantı dizesi depolama hesabı tarafından barındırılan tek bir dosyaya başvurması gerekir. Birden çok dosya alımı, birden çok bağlantı dizesi belirtilerek veya bir dış tablonunsorgusundan alınarak yapılabilir.

Not

SourceDataPointer için karartılmış 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 oluşturulur. Farklı ConstValue değerleri gibi ne kadar farklı alım eşleme özellikleri kullanılırsa, alım 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 geçerli 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, bir kez etkili veri alımı 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 bir alım aynı verileri yeniden almaya çalışırsa.)
ignoreFirstRecord olarak ayarlanırsa truealımın her dosyanın ilk kaydını yoksayması gerektiğini belirten boole değeri. Bu özellik, dosyadaki CSVilk kayıt sütun adlarıysa, bu özellik ve benzer biçimlerdeki dosyalar için yararlıdır. Varsayılan olarak, false varsayılır. 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
Kimliğ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.
erişim belirtecini Microsoft Entra
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ğine sahip tek bir kayıt döndürülür.

Ad Tür Description
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 Alım işleminin ne kadar sürdüğünü.
HasErrors bool Bu kaydın bir alım hatasını temsil edip etmediği.
OperationId guid İşlemi temsil eden benzersiz bir kimlik. komutuyla .show operation kullanılabilir.

Not

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

Örnekler

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

Aşağıdaki örnek, kümenize csv dosyaları olarak Azure Blob Depolama iki blobu okumasını ve içeriğini tabloya Talmalarını sağlar. , ... her bloba okuma erişimi sağlayan 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 bir CSV dosyasının Azure Blob Depolama'dan 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 almaya yöneliktir. 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'sini gizli dizi içeriyor olarak ele almanız gerekmez). Ayrıca alım ö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ı olan Amazon S3

Aşağıdaki örnek, erişim anahtarı kimliği ve gizli 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'ye sahip 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')