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
] into
table
TableNameSourceDataLocator [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 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, 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 true alımın her dosyanın ilk kaydını yoksayması gerektiğini belirten boole değeri. Bu özellik, dosyadaki CSV ilk 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 T
almaları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')
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