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 false olarak 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 true alımın her dosyanın ilk kaydını yoksayması gerektiğini gösteren boole değeri. Bu özellik, dosyadaki CSV ilk 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 T
almaları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')
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin