Kaynak veri kümesi sütunlarını hedef veri kümesi sütunlarıyla eşleme
Not
Bu makale, Data Factory’nin 1. sürümü için geçerlidir.
Sütun eşlemesi, kaynak tablonun "yapısında" belirtilen sütunların havuz tablosunun "yapısında" belirtilen sütunlara nasıl eşleneceğini belirtmek için kullanılabilir. columnMapping özelliği, Kopyalama etkinliği typeProperties bölümünde kullanılabilir.
Sütun eşlemesi aşağıdaki senaryoları destekler:
- Kaynak veri kümesi yapısındaki tüm sütunlar havuz veri kümesi yapısındaki tüm sütunlara eşlenir.
- Kaynak veri kümesi yapısındaki sütunların bir alt kümesi havuz veri kümesi yapısındaki tüm sütunlara eşlenir.
Bir özel durumla sonuçlanırken oluşan hata koşulları şunlardır:
- Havuz tablosunun "yapısında" eşlemede belirtilenden daha az sütun veya daha fazla sütun.
- Yinelenen eşleme.
- SQL sorgu sonucunun eşlemede belirtilen bir sütun adı yok.
Not
Aşağıdaki örnekler Azure SQL ve Azure Blob içindir ancak dikdörtgen veri kümelerini destekleyen tüm veri depoları için geçerlidir. Örneklerde veri kümesi ve bağlı hizmet tanımlarını ilgili veri kaynağındaki verileri işaret etmek için ayarlayın.
Örnek 1 - Azure SQL'den Azure blob'a sütun eşleme
Bu örnekte giriş tablosunun bir yapısı vardır ve Azure SQL Veritabanındaki bir SQL tablosuna işaret eder.
{
"name": "AzureSQLInput",
"properties": {
"structure":
[
{ "name": "userid"},
{ "name": "name"},
{ "name": "group"}
],
"type": "AzureSqlTable",
"linkedServiceName": "AzureSqlLinkedService",
"typeProperties": {
"tableName": "MyTable"
},
"availability": {
"frequency": "Hour",
"interval": 1
},
"external": true,
"policy": {
"externalData": {
"retryInterval": "00:01:00",
"retryTimeout": "00:10:00",
"maximumRetry": 3
}
}
}
}
Bu örnekte çıkış tablosunun bir yapısı vardır ve Azure blob depolamadaki bir bloba işaret eder.
{
"name": "AzureBlobOutput",
"properties":
{
"structure":
[
{ "name": "myuserid"},
{ "name": "myname" },
{ "name": "mygroup"}
],
"type": "AzureBlob",
"linkedServiceName": "StorageLinkedService",
"typeProperties": {
"folderPath": "mycontainer/myfolder",
"fileName":"myfile.csv",
"format":
{
"type": "TextFormat",
"columnDelimiter": ","
}
},
"availability":
{
"frequency": "Hour",
"interval": 1
}
}
}
Aşağıdaki JSON işlem hattında kopyalama etkinliğini tanımlar. Translator özelliğini kullanarak kaynaktaki sütunlar havuzdaki sütunlara eşlendi (columnMappings).
{
"name": "CopyActivity",
"description": "description",
"type": "Copy",
"inputs": [ { "name": "AzureSQLInput" } ],
"outputs": [ { "name": "AzureBlobOutput" } ],
"typeProperties": {
"source":
{
"type": "SqlSource"
},
"sink":
{
"type": "BlobSink"
},
"translator":
{
"type": "TabularTranslator",
"ColumnMappings": "UserId: MyUserId, Group: MyGroup, Name: MyName"
}
},
"scheduler": {
"frequency": "Hour",
"interval": 1
}
}
Sütun eşleme akışı:
Örnek 2 - Azure SQL'dan Azure blob'a SQL sorgusuyla sütun eşleme
Bu örnekte, "yapı" bölümünde yalnızca tablo adını ve sütun adlarını belirtmek yerine Azure SQL verileri ayıklamak için sql sorgusu kullanılır.
{
"name": "CopyActivity",
"description": "description",
"type": "CopyActivity",
"inputs": [ { "name": " AzureSQLInput" } ],
"outputs": [ { "name": " AzureBlobOutput" } ],
"typeProperties":
{
"source":
{
"type": "SqlSource",
"SqlReaderQuery": "$$Text.Format('SELECT * FROM MyTable WHERE StartDateTime = \\'{0:yyyyMMdd-HH}\\'', WindowStart)"
},
"sink":
{
"type": "BlobSink"
},
"Translator":
{
"type": "TabularTranslator",
"ColumnMappings": "UserId: MyUserId, Group: MyGroup,Name: MyName"
}
},
"scheduler": {
"frequency": "Hour",
"interval": 1
}
}
Bu durumda, sorgu sonuçları ilk olarak kaynağın "yapısında" belirtilen sütunlara eşlenir. Ardından, "yapı" kaynağındaki sütunlar, columnMappings içinde belirtilen kurallarla "yapı" havuzundaki sütunlara eşlenir. Sorgunun kaynağın "yapısında" belirtilenlerden iki sütun daha fazla 5 sütun döndürdüğü varsayın.
Sütun eşleme akışı
Sonraki adımlar
Kopyalama Etkinliğini kullanma öğreticisi için makaleye bakın: