Azure Data Factory kullanarak Verileri Azure Tablosuna veya Tablosundan taşıma

Not

Bu makale, Data Factory’nin 1. sürümü için geçerlidir. Data Factory hizmetinin geçerli sürümünü kullanıyorsanız bkz. V2'de Azure Tablo Depolama bağlayıcısı.

Bu makalede, verileri Azure Tablo Depolama'na/azuredan taşımak için Azure Data Factory kopyalama etkinliğinin nasıl kullanılacağı açıklanmaktadır. Kopyalama etkinliğiyle birlikte veri taşımaya genel bir genel bakış sunan Veri Taşıma Etkinlikleri makalesini oluşturur.

Desteklenen herhangi bir kaynak veri deposundan Azure Tablo Depolama veya Azure Tablo Depolama desteklenen havuz veri depolarına veri kopyalayabilirsiniz. Kopyalama etkinliği tarafından kaynak veya havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Not

Bu makalede, Azure ile etkileşime yönelik önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Başlarken

Farklı araçlar/API'ler kullanarak verileri Azure Tablo Depolama taşıyan kopyalama etkinliğine sahip bir işlem hattı oluşturabilirsiniz.

İşlem hattı oluşturmanın en kolay yolu Kopyalama Sihirbazı'nı kullanmaktır. Veri kopyalama sihirbazını kullanarak işlem hattı oluşturma hakkında hızlı bir kılavuz için bkz. Öğretici: Kopyalama Sihirbazı'nı kullanarak işlem hattı oluşturma.

İşlem hattı oluşturmak için aşağıdaki araçları da kullanabilirsiniz: Visual Studio, Azure PowerShell, Azure Resource Manager şablonu, .NET API ve REST API. Kopyalama etkinliğiyle işlem hattı oluşturmaya yönelik adım adım yönergeler için Kopyalama etkinliği öğreticiye bakın.

İster araçları ister API'leri kullanın, bir kaynak veri deposundan havuz veri deposuna veri taşıyan bir işlem hattı oluşturmak için aşağıdaki adımları gerçekleştirirsiniz:

  1. Giriş ve çıkış veri depolarını veri fabrikanıza bağlamak için bağlı hizmetler oluşturun.
  2. Kopyalama işlemi için giriş ve çıkış verilerini temsil eden veri kümeleri oluşturun.
  3. Veri kümesini giriş, veri kümesini çıkış olarak alan kopyalama etkinliğine sahip bir işlem hattı oluşturun.

Sihirbazı kullandığınızda, bu Data Factory varlıkları (bağlı hizmetler, veri kümeleri ve işlem hattı) için JSON tanımları sizin için otomatik olarak oluşturulur. Araçları/API'leri (.NET API hariç) kullandığınızda, JSON biçimini kullanarak bu Data Factory varlıklarını tanımlarsınız. Bir Azure Tablo Depolama'ne/azure tablosundan veri kopyalamak için kullanılan Data Factory varlıklarına yönelik JSON tanımlarına sahip örnekler için bu makalenin JSON örnekleri bölümüne bakın.

Aşağıdaki bölümlerde Azure Tablo Depolama'ne özgü Data Factory varlıklarını tanımlamak için kullanılan JSON özellikleri hakkında ayrıntılar sağlanır:

Bağlı hizmet özellikleri

Azure blob depolama alanını bir Azure veri fabrikasına bağlamak için kullanabileceğiniz iki bağlı hizmet türü vardır. Bunlar: AzureStorage bağlı hizmeti ve AzureStorageSas bağlı hizmeti. Azure Depolama bağlı hizmeti, veri fabrikasına Azure Depolama genel erişim sağlar. Öte yandan Azure Depolama SAS (Paylaşılan Erişim İmzası) bağlı hizmeti, veri fabrikasına Azure Depolama kısıtlı/zamana bağlı erişim sağlar. Bu iki bağlı hizmet arasında başka bir fark yoktur. İhtiyaçlarınıza uygun bağlı hizmeti seçin. Aşağıdaki bölümlerde bu iki bağlı hizmet hakkında daha fazla ayrıntı sağlanır.

Azure Storage Bağlı Hizmeti

Azure Depolama bağlı hizmeti, veri fabrikasına Azure Depolama genel erişim sağlayan hesap anahtarını kullanarak bir Azure depolama hesabını Azure veri fabrikasına bağlamanıza olanak tanır. Aşağıdaki tabloda Azure Depolama bağlı hizmetine özgü JSON öğeleri için açıklama sağlanır.

Özellik Açıklama Gerekli
tür Tür özelliği şu şekilde ayarlanmalıdır: AzureStorage Yes
Connectionstring connectionString özelliği için Azure depolamaya bağlanmak için gereken bilgileri belirtin. Yes

Depolama hesabı erişim anahtarlarını alma hakkında bilgi için bkz. Depolama hesabı erişim anahtarlarını yönetme.

Örnek:

{
    "name": "StorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        }
    }
}

Azure Depolama Sas Bağlı Hizmeti

Paylaşılan erişim imzası (SAS), depolama hesabınızdaki kaynaklara temsilci erişimi sağlar. İstemciye, hesap erişim anahtarlarınızı paylaşmak zorunda kalmadan, belirli bir süre boyunca ve belirli bir izin kümesiyle depolama hesabınızdaki nesnelere sınırlı izinler vermenizi sağlar. SAS, sorgu parametrelerinde bir depolama kaynağına kimliği doğrulanmış erişim için gereken tüm bilgileri kapsayan bir URI'dir. SAS ile depolama kaynaklarına erişmek için istemcinin sas'yi yalnızca uygun oluşturucuya veya yönteme geçirmesi gerekir. SAS hakkında daha fazla bilgi için bkz. Paylaşılan erişim imzalarını (SAS) kullanarak Azure Depolama kaynaklarına sınırlı erişim verme.

Önemli

Azure Data Factory artık yalnızca Hizmet SAS'sı desteklemektedir ancak Hesap SAS'sı desteklenmemektedir. Azure portal veya Depolama Gezgini tarafından genişletilebilir SAS URL'sinin desteklenmeyen bir Hesap SAS'si olduğuna dikkat edin.

İpucu

Depolama hesabınız için bir Hizmet SAS'ı oluşturmak için aşağıdaki PowerShell komutlarını yürütebilirsiniz (yer tutucuları değiştirin ve gerekli izni verin): $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey>New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri

Azure Depolama SAS bağlı hizmeti, Paylaşılan Erişim İmzası (SAS) kullanarak bir Azure Depolama Hesabını Azure veri fabrikasına bağlamanıza olanak tanır. Veri fabrikasına depolamadaki tüm/belirli kaynaklara (blob/kapsayıcı) kısıtlı/zamana bağlı erişim sağlar. Aşağıdaki tabloda Azure Depolama SAS bağlı hizmetine özgü JSON öğeleri için açıklama sağlanır.

Özellik Açıklama Gerekli
tür Type özelliği şu şekilde ayarlanmalıdır: AzureStorageSas Yes
sasUri Blob, kapsayıcı veya tablo gibi Azure Depolama kaynakları için Paylaşılan Erişim İmzası URI'sini belirtin. Yes

Örnek:

{
    "name": "StorageSasLinkedService",
    "properties": {
        "type": "AzureStorageSas",
        "typeProperties": {
            "sasUri": "<Specify SAS URI of the Azure Storage resource>"
        }
    }
}

SAS URI'sini oluştururken aşağıdakileri göz önünde bulundurun:

  • Bağlı hizmetin (okuma, yazma, okuma/yazma) veri fabrikanızda nasıl kullanıldığına bağlı olarak nesneler üzerinde uygun okuma/yazma izinlerini ayarlayın.
  • Süre sonu süresini uygun şekilde ayarlayın. Azure Depolama nesnelerine erişimin işlem hattının etkin süresi içinde dolmadığından emin olun.
  • Uri, ihtiyaca göre doğru kapsayıcı/blob veya Tablo düzeyinde oluşturulmalıdır. Azure blobu için SAS Uri'leri, Data Factory hizmetinin söz konusu bloba erişmesine olanak tanır. Azure blob kapsayıcısına SAS Uri'si, Data Factory hizmetinin bu kapsayıcıdaki bloblar arasında yineleme yapmasına olanak tanır. Daha sonra daha fazla/daha az nesneye erişim sağlamanız veya SAS URI'sini güncelleştirmeniz gerekiyorsa, bağlı hizmeti yeni URI ile güncelleştirmeyi unutmayın.

Veri kümesi özellikleri

Veri kümelerini & tanımlamak için kullanılabilen bölüm özelliklerinin tam listesi için Veri kümeleri oluşturma makalesine bakın. Veri kümesi JSON'unun yapısı, kullanılabilirliği ve ilkesi gibi bölümler tüm veri kümesi türleri (Azure SQL, Azure blobu, Azure tablosu vb.) için benzerdir.

typeProperties bölümü her veri kümesi türü için farklıdır ve veri deposundaki verilerin konumu hakkında bilgi sağlar. AzureTable türündeki veri kümesinin typeProperties bölümü aşağıdaki özelliklere sahiptir.

Özellik Açıklama Gerekli
tableName Bağlı hizmetin başvurduğu Azure Tablo Veritabanı örneğindeki tablonun adı. Evet. bir tableName azureTableSourceQuery olmadan belirtildiğinde, tablodaki tüm kayıtlar hedefe kopyalanır. AzureTableSourceQuery de belirtilirse, sorguyu karşılayan tablodaki kayıtlar hedefe kopyalanır.

Data Factory'ye göre şema

Azure Tablosu gibi şemasız veri depoları için Data Factory hizmeti şemayı aşağıdaki yollardan biriyle çıkarsar:

  1. Veri kümesi tanımında structure özelliğini kullanarak veri yapısını belirtirseniz Data Factory hizmeti bu yapıyı şema olarak kabul eder. Bu durumda, bir satır bir sütun için değer içermiyorsa, bu sütun için null değer sağlanır.
  2. Veri kümesi tanımındaki structure özelliğini kullanarak veri yapısını belirtmezseniz, Data Factory verilerin ilk satırını kullanarak şemayı çıkarsar. Bu durumda, ilk satır tam şemayı içermiyorsa, kopyalama işleminin sonucunda bazı sütunlar atlanır.

Bu nedenle, şemasız veri kaynakları için en iyi yöntem, yapı özelliğini kullanarak veri yapısını belirtmektir.

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölüm & özelliklerinin tam listesi için Pipelines oluşturma makalesine bakın. Ad, açıklama, giriş ve çıkış veri kümeleri ve ilkeler gibi özellikler tüm etkinlik türleri için kullanılabilir.

Öte yandan etkinliğin typeProperties bölümünde bulunan özellikler her etkinlik türüne göre değişiklik gösterir. Kopyalama etkinliği için, kaynak ve havuz türlerine bağlı olarak değişirler.

AzureTableSource typeProperties bölümünde aşağıdaki özellikleri destekler:

Özellik Açıklama İzin verilen değerler Gerekli
azureTableSourceQuery Verileri okumak için özel sorguyu kullanın. Azure tablo sorgu dizesi. Sonraki bölümdeki örneklere bakın. Hayır. bir tableName azureTableSourceQuery olmadan belirtildiğinde, tablodaki tüm kayıtlar hedefe kopyalanır. AzureTableSourceQuery de belirtilirse, tablodan sorguyu karşılayan kayıtlar hedefe kopyalanır.
azureTableSourceIgnoreTableNotFound Tablo özel durumunun mevcut olup olmadığını belirtin. TRUE
FALSE
No

azureTableSourceQuery örnekleri

Azure Tablo sütunu dize türündeyse:

azureTableSourceQuery": "$$Text.Format('PartitionKey ge \\'{0:yyyyMMddHH00_0000}\\' and PartitionKey le \\'{0:yyyyMMddHH00_9999}\\'', SliceStart)"

Azure Tablo sütunu tarih saat türündeyse:

"azureTableSourceQuery": "$$Text.Format('DeploymentEndTime gt datetime\\'{0:yyyy-MM-ddTHH:mm:ssZ}\\' and DeploymentEndTime le datetime\\'{1:yyyy-MM-ddTHH:mm:ssZ}\\'', SliceStart, SliceEnd)"

AzureTableSink typeProperties bölümünde aşağıdaki özellikleri destekler:

Özellik Açıklama İzin verilen değerler Gerekli
azureTableDefaultPartitionKeyValue Havuz tarafından kullanılabilecek varsayılan bölüm anahtarı değeri. Dize değeri. No
azureTablePartitionKeyName Değerleri bölüm anahtarları olarak kullanılan sütunun adını belirtin. Belirtilmezse, bölüm anahtarı olarak AzureTableDefaultPartitionKeyValue kullanılır. Sütun adı. No
azureTableRowKeyName Sütun değerleri satır anahtarı olarak kullanılan sütunun adını belirtin. Belirtilmezse, her satır için bir GUID kullanın. Sütun adı. No
azureTableInsertType Azure tablosuna veri ekleme modu.

Bu özellik, eşleşen bölüm ve satır anahtarlarıyla çıkış tablosundaki mevcut satırların değerlerinin değiştirilip değiştirilmediğini veya birleştirilip birleştirilmeyeceğini denetler.

Bu ayarların (birleştirme ve değiştirme) nasıl çalıştığı hakkında bilgi edinmek için bkz. Varlık Ekleme veya Birleştirme ve Varlık Ekleme veya Değiştirme konuları.

Bu ayar tablo düzeyinde değil satır düzeyinde uygulanır ve hiçbir seçenek çıkış tablosundaki girişte bulunmayan satırları silmez.
merge (varsayılan)
Değiştirmek
No
writeBatchSize writeBatchSize veya writeBatchTimeout tuşuna basıldığında Verileri Azure tablosuna ekler. Tamsayı (satır sayısı) Hayır (varsayılan: 10000)
writeBatchTimeout writeBatchSize veya writeBatchTimeout'a isabet edildiğinde Azure tablosuna veri ekler timespan

Örnek: "00:20:00" (20 dakika)
Hayır (Varsayılan olarak depolama istemcisi varsayılan zaman aşımı değeri 90 sn)

azureTablePartitionKeyName

Hedef sütunu azureTablePartitionKeyName olarak kullanabilmek için önce translator JSON özelliğini kullanarak kaynak sütunu hedef sütuna eşleyin.

Aşağıdaki örnekte, kaynak sütun DivisionID hedef sütuna eşlenir: DivisionID.

"translator": {
    "type": "TabularTranslator",
    "columnMappings": "DivisionID: DivisionID, FirstName: FirstName, LastName: LastName"
}

Bölüm Kimliği bölüm anahtarı olarak belirtilir.

"sink": {
    "type": "AzureTableSink",
    "azureTablePartitionKeyName": "DivisionID",
    "writeBatchSize": 100,
    "writeBatchTimeout": "01:00:00"
}

JSON örnekleri

Aşağıdaki örneklerde, Visual Studio veyaAzure PowerShell kullanarak işlem hattı oluşturmak için kullanabileceğiniz örnek JSON tanımları sağlanır. Azure Tablo Depolama ve Azure Blob Veritabanı'na veri kopyalamayı gösterir. Ancak, veriler herhangi bir kaynaktan desteklenen havuzlardan herhangi birine doğrudan kopyalanabilir. Daha fazla bilgi için Kopyalama Etkinliğini kullanarak verileri taşıma bölümündeki "Desteklenen veri depoları ve biçimleri" bölümüne bakın.

Örnek: Azure Tablosundan Azure Blob'a veri kopyalama

Aşağıdaki örnek şunları gösterir:

  1. AzureStorage türünde bir bağlı hizmet (her iki tablo & blobu için de kullanılır).
  2. AzureTable türünde bir giriş veri kümesi.
  3. AzureBlob türünde bir çıkış veri kümesi.
  4. AzureTableSource ve BlobSink kullanan Kopyalama etkinliği ile işlem hattı.

Örnek, Bir Azure Tablosundaki varsayılan bölüme ait verileri saatte bir bloba kopyalar. Bu örneklerde kullanılan JSON özellikleri, örnekleri izleyen bölümlerde açıklanmıştır.

Azure depolama bağlı hizmeti:

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Azure Data Factory iki tür Azure Depolama bağlı hizmetini destekler: AzureStorage ve AzureStorageSas. İlki için, hesap anahtarını içeren bağlantı dizesini belirtirsiniz ve sonraki için Paylaşılan Erişim İmzası (SAS) Uri'sini belirtirsiniz. Ayrıntılar için Bağlı Hizmetler bölümüne bakın.

Azure Tablo giriş veri kümesi:

Örnekte, Azure Tablosu'nda bir "MyTable" tablosu oluşturduğunuz varsayılır.

"external": "true" ayarı Data Factory hizmetine veri kümesinin veri fabrikasının dışında olduğunu ve veri fabrikasındaki bir etkinlik tarafından üretilmediğini bildirir.

{
  "name": "AzureTableInput",
  "properties": {
    "type": "AzureTable",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "tableName": "MyTable"
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Azure Blob çıkış veri kümesi:

Veriler saatte bir yeni bir bloba yazılır (sıklık: saat, aralık: 1). Blobun klasör yolu, işlenen dilimin başlangıç zamanına göre dinamik olarak değerlendirilir. Klasör yolu başlangıç saatinin yıl, ay, gün ve saat bölümlerini kullanır.

{
  "name": "AzureBlobOutput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}/hourno={Hour}",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": "\t",
        "rowDelimiter": "\n"
      }
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

AzureTableSource ve BlobSink ile işlem hattında Kopyalama etkinliği:

İşlem hattı, giriş ve çıkış veri kümelerini kullanacak şekilde yapılandırılmış ve saatte bir çalışacak şekilde zamanlanmış bir Kopyalama Etkinliği içerir. İşlem hattı JSON tanımında kaynak türü AzureTableSource , havuz türü ise BlobSink olarak ayarlanır. AzureTableSourceQuery özelliğiyle belirtilen SQL sorgusu, varsayılan bölümdeki verileri kopyalanacak saatte bir seçer.

{
    "name":"SamplePipeline",
    "properties":{
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline for copy activity",
        "activities":[
            {
                "name": "AzureTabletoBlob",
                "description": "copy activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureTableInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "AzureTableSource",
                        "AzureTableSourceQuery": "PartitionKey eq 'DefaultPartitionKey'"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Örnek: Azure Blob'dan Azure Tablosuna veri kopyalama

Aşağıdaki örnek şunları gösterir:

  1. AzureStorage türünde bir bağlı hizmet (her iki tablo & blobu için de kullanılır)
  2. AzureBlob türünde bir giriş veri kümesi.
  3. AzureTable türünde bir çıkış veri kümesi.
  4. BlobSource ve AzureTableSink kullanan Kopyalama etkinliği ile işlem hattı.

Örnek, zaman serisi verilerini bir Azure blobundan Azure tablosuna saatlik olarak kopyalar. Bu örneklerde kullanılan JSON özellikleri, örnekleri izleyen bölümlerde açıklanmıştır.

Azure depolama (her iki Azure Tablo & Blobu için de) bağlı hizmeti:

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Azure Data Factory iki tür Azure Depolama bağlı hizmetini destekler: AzureStorage ve AzureStorageSas. İlki için, hesap anahtarını içeren bağlantı dizesini belirtirsiniz ve sonraki için Paylaşılan Erişim İmzası (SAS) Uri'sini belirtirsiniz. Ayrıntılar için Bağlı Hizmetler bölümüne bakın.

Azure Blob giriş veri kümesi:

Veriler saatte bir yeni bir blobdan alınır (sıklık: saat, aralık: 1). Blobun klasör yolu ve dosya adı, işlenen dilimin başlangıç zamanına göre dinamik olarak değerlendirilir. Klasör yolu başlangıç saatinin yıl, ay ve gün bölümünü, dosya adı ise başlangıç saatinin saat bölümünü kullanır. "external": "true" ayarı Data Factory hizmetine veri kümesinin veri fabrikasının dışında olduğunu ve veri fabrikasındaki bir etkinlik tarafından üretilmediğini bildirir.

{
  "name": "AzureBlobInput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}",
      "fileName": "{Hour}.csv",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": ",",
        "rowDelimiter": "\n"
      }
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Azure Tablo çıkış veri kümesi:

Örnek, Verileri Azure Tablosu'ndaki "MyTable" adlı tabloya kopyalar. Blob CSV dosyasının içermesini beklediğiniz sayıda sütuna sahip bir Azure tablosu oluşturun. Tabloya saatte bir yeni satırlar eklenir.

{
  "name": "AzureTableOutput",
  "properties": {
    "type": "AzureTable",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "tableName": "MyOutputTable"
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

BlobSource ve AzureTableSink ile işlem hattında Kopyalama etkinliği:

İşlem hattı, giriş ve çıkış veri kümelerini kullanacak şekilde yapılandırılmış ve saatte bir çalışacak şekilde zamanlanmış bir Kopyalama Etkinliği içerir. İşlem hattı JSON tanımında kaynak türü BlobSource , havuz türü ise AzureTableSink olarak ayarlanır.

{
  "name":"SamplePipeline",
  "properties":{
    "start":"2014-06-01T18:00:00",
    "end":"2014-06-01T19:00:00",
    "description":"pipeline with copy activity",
    "activities":[
      {
        "name": "AzureBlobtoTable",
        "description": "Copy Activity",
        "type": "Copy",
        "inputs": [
          {
            "name": "AzureBlobInput"
          }
        ],
        "outputs": [
          {
            "name": "AzureTableOutput"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "AzureTableSink",
            "writeBatchSize": 100,
            "writeBatchTimeout": "01:00:00"
          }
        },
        "scheduler": {
          "frequency": "Hour",
          "interval": 1
        },
        "policy": {
          "concurrency": 1,
          "executionPriorityOrder": "OldestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
    ]
  }
}

Azure Tablosu için Tür Eşleme

Veri taşıma etkinlikleri makalesinde belirtildiği gibi, Kopyalama etkinliği aşağıdaki iki adımlı yaklaşımla kaynak türlerden havuz türlerine otomatik tür dönüştürmeleri gerçekleştirir.

  1. Yerel kaynak türlerinden .NET türüne dönüştürme
  2. .NET türünden yerel havuz türüne dönüştürme

Verileri Azure Tablosundan'a & taşırken, Azure Tablo hizmeti tarafından tanımlanan aşağıdaki eşlemeler Azure Tablo OData türlerinden .NET türüne (veya tam tersi) kullanılır.

OData Veri Türü .NET Türü Ayrıntılar
Edm.Binary bayt[] 64 KB'a kadar bayt dizisi.
Edm.Boolean bool Boole değeri.
Edm.DateTime DateTime Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen 64 bitlik bir değer. Desteklenen DateTime aralığı 12:00 gece yarısı, 1 Ocak 1601 M.S. (C.E.), UTC'den başlar. Aralık 31 Aralık 9999'da sona erer.
Edm.Double double 64 bit kayan nokta değeri.
Edm.Guid Guid 128 bit genel benzersiz tanımlayıcı.
Edm.Int32 Int32 32 bitlik bir tamsayı.
Edm.Int64 Int64 64 bitlik bir tamsayı.
Edm.String Dize UTF-16 ile kodlanmış bir değer. Dize değerleri 64 KB'a kadar olabilir.

Tür Dönüştürme Örneği

Aşağıdaki örnek, tür dönüştürmeleri ile azure blobundan Azure Tablosuna veri kopyalamaya yöneliktir.

Blob veri kümesinin CSV biçiminde olduğunu ve üç sütun içerdiğini varsayalım. Bunlardan biri, haftanın günü için kısaltılmış Fransızca adların kullanıldığı özel tarih saat biçimine sahip bir tarih saat sütunudur.

Blob Kaynağı veri kümesini, sütunlar için tür tanımlarıyla birlikte aşağıdaki gibi tanımlayın.

{
    "name": " AzureBlobInput",
    "properties":
    {
        "structure":
        [
            { "name": "userid", "type": "Int64"},
            { "name": "name", "type": "String"},
            { "name": "lastlogindate", "type": "Datetime", "culture": "fr-fr", "format": "ddd-MM-YYYY"}
        ],
        "type": "AzureBlob",
        "linkedServiceName": "StorageLinkedService",
        "typeProperties": {
            "folderPath": "mycontainer/myfolder",
            "fileName":"myfile.csv",
            "format":
            {
                "type": "TextFormat",
                "columnDelimiter": ","
            }
        },
        "external": true,
        "availability":
        {
            "frequency": "Hour",
            "interval": 1,
        },
        "policy": {
            "externalData": {
                "retryInterval": "00:01:00",
                "retryTimeout": "00:10:00",
                "maximumRetry": 3
            }
        }
    }
}

Azure Tablo OData türünden .NET türüne tür eşlemesi göz önünde bulundurulduğunda, tabloyu Azure Tablosu'nda aşağıdaki şemayla tanımlarsınız.

Azure Tablo şeması:

Sütun adı Tür
Userıd Edm.Int64
name Edm.String
Lastlogindate Edm.DateTime

Ardından Azure Tablo veri kümesini aşağıdaki gibi tanımlayın. Tür bilgileri temel alınan veri deposunda zaten belirtildiğinden tür bilgileriyle "yapı" bölümünü belirtmeniz gerekmez.

{
  "name": "AzureTableOutput",
  "properties": {
    "type": "AzureTable",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "tableName": "MyOutputTable"
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

Bu durumda Data Factory, Verileri Blob'dan Azure Tablosu'na taşırken "fr-fr" kültürünü kullanarak özel tarih saat biçimine sahip Datetime alanı dahil olmak üzere tür dönüştürmelerini otomatik olarak yapar.

Not

Kaynak veri kümesindeki sütunları havuz veri kümesindeki sütunlara eşlemek için bkz. Azure Data Factory'de veri kümesi sütunlarını eşleme.

Performans ve Ayarlama

Azure Data Factory'da veri taşıma (Kopyalama Etkinliği) performansını etkileyen temel faktörler ve bunu iyileştirmenin çeşitli yolları hakkında bilgi edinmek için bkz. Kopyalama Etkinliği Performansı & Ayarlama Kılavuzu.