Azure Data Factory'yi veya Synapse Analytics'i kullanarak Azure Tablo depolama alanına veri kopyalama

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Azure Tablo depolama alanına veri kopyalamak için Azure Data Factory ve Synapse Analytics işlem hatlarında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama Etkinliğine genel bir genel bakış sunan Kopyalama Etkinliğine genel bakış makalesini oluşturur.

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Desteklenen özellikler

Bu Azure Tablo depolama bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler IR Yönetilen özel uç nokta
Kopyalama etkinliği (kaynak/havuz) ① ② ✓ Depolama hesabı V1'i hariç tutma
Arama etkinliği ① ② ✓ Depolama hesabı V1'i hariç tutma

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı

Desteklenen herhangi bir kaynak veri deposundaki verileri Tablo depolama alanına kopyalayabilirsiniz. Ayrıca Tablo depolama alanından desteklenen havuz veri depolarına da 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.

Özellikle, bu Azure Tablo bağlayıcısı hesap anahtarı ve hizmet paylaşılan erişim imzası kimlik doğrulamalarını kullanarak veri kopyalamayı destekler.

Başlarken

İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak Azure Tablo depolama bağlı hizmeti oluşturma

Azure portalı kullanıcı arabiriminde bir Azure Tablo depolama bağlı hizmeti oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

  2. Azure Tablosu'nu arayın ve Azure Tablo depolama bağlayıcısını seçin.

    Screenshot of the Azure Table storage connector.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    Screenshot of configuration for an Azure Table storage linked service.

Bağlan veya yapılandırma ayrıntıları

Aşağıdaki bölümlerde, Azure Tablo depolamaya özgü varlıkları tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

Hesap anahtarı kullanma

Hesap anahtarını kullanarak Azure Depolama bağlı hizmeti oluşturabilirsiniz. Hizmete Depolama genel erişim sağlar. Aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type tür özelliği AzureTable Depolama olarak ayarlanmalıdır. Evet
Connectionstring connectionString özelliği için Depolama bağlanmak için gereken bilgileri belirtin.
Ayrıca Azure Key Vault'a hesap anahtarı ekleyebilir ve yapılandırmayı accountKey bağlantı dizesi çıkarabilirsiniz. Diğer ayrıntılarla birlikte aşağıdaki örneklere ve Azure Key Vault'ta kimlik bilgilerini depolama makalesine bakın.
Evet
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Azure Integration Runtime veya Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nı (veri deponuz özel bir ağda bulunuyorsa) kullanabilirsiniz. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. No

Dekont

"Azure Depolama" türü bağlı hizmeti kullanıyorsanız, bu yeni "AzureTable Depolama" bağlı hizmet türünü kullanmanız önerilirken, bu hizmet yine olduğu gibi desteklenir.

Örnek:

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Hesap anahtarını Azure Key Vault'ta depolama

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Paylaşılan erişim imzası kimlik doğrulamayı kullanma

Paylaşılan erişim imzası kullanarak Depolama bağlı bir hizmet de oluşturabilirsiniz. Hizmete, depolamadaki tüm/belirli kaynaklara kısıtlı/zamana bağlı erişim sağlar.

Paylaşılan erişim imzası, depolama hesabınızdaki kaynaklara temsilci erişimi sağlar. Bir istemciye, depolama hesabınızdaki nesnelere belirli bir süre ve belirli bir izin kümesiyle sınırlı izinler vermek için kullanabilirsiniz. Hesap erişim anahtarlarınızı paylaşmanız gerekmez. Paylaşılan erişim imzası, bir depolama kaynağına kimliği doğrulanmış erişim için gereken tüm bilgileri sorgu parametrelerinde kapsayan bir URI'dir. Paylaşılan erişim imzasıyla depolama kaynaklarına erişmek için istemcinin yalnızca paylaşılan erişim imzasını uygun oluşturucuya veya yönteme geçirmesi gerekir. Paylaşılan erişim imzaları hakkında daha fazla bilgi için bkz . Paylaşılan erişim imzaları: Paylaşılan erişim imzası modelini anlama.

Dekont

Artık hem hizmet paylaşılan erişim imzaları hem de hesap paylaşılan erişim imzaları desteklenmektedir. Paylaşılan erişim imzaları 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.

Bahşiş

Depolama hesabınız için bir hizmet paylaşılan erişim imzası 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

Paylaşılan erişim imzası kimlik doğrulamasını kullanmak için aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type tür özelliği AzureTable Depolama olarak ayarlanmalıdır. Evet
sasUri Tabloya paylaşılan erişim imzası URI'sinin SAS URI'sini belirtin.
Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin. Otomatik döndürmeden yararlanmak ve belirteç bölümünü kaldırmak için Azure Key Vault'a SAS belirteci de koyabilirsiniz. Diğer ayrıntılarla birlikte aşağıdaki örneklere ve Azure Key Vault'ta kimlik bilgilerini depolama makalesine bakın.
Evet
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Azure Integration Runtime'ı veya Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nı (veri deponuz özel bir ağda bulunuyorsa) kullanabilirsiniz. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. No

Dekont

"Azure Depolama" türü bağlı hizmeti kullanıyorsanız, bu yeni "AzureTable Depolama" bağlı hizmet türünü kullanmanız önerilirken, bu hizmet yine olduğu gibi desteklenir.

Örnek:

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<account>.table.core.windows.net/<table>?sv=<storage version>&amp;st=<start time>&amp;se=<expire time>&amp;sr=<resource>&amp;sp=<permissions>&amp;sip=<ip range>&amp;spr=<protocol>&amp;sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Hesap anahtarını Azure Key Vault'ta depolama

{
    "name": "AzureTableStorageLinkedService",
    "properties": {
        "type": "AzureTableStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<account>.table.core.windows.net/<table>>"
            },
            "sasToken": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Paylaşılan erişim imzası URI'sini oluştururken aşağıdaki noktaları göz önünde bulundurun:

  • Bağlı hizmetin (okuma, yazma, okuma/yazma) 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. Depolama nesnelere erişimin işlem hattının etkin süresi içinde dolmadığından emin olun.
  • URI, ihtiyaca göre doğru tablo düzeyinde oluşturulmalıdır.

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Veri kümeleri makalesine bakın. Bu bölümde, Azure Tablo veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

Azure Tablosu'na ve Azure Tablosundan veri kopyalamak için veri kümesinin tür özelliğini AzureTable olarak ayarlayın. Aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type Veri kümesinin type özelliği AzureTable olarak ayarlanmalıdır. Evet
tableName Bağlı hizmetin başvurduğu Tablo depolama veritabanı örneğindeki tablonun adı. Evet

Örnek:

{
    "name": "AzureTableDataset",
    "properties":
    {
        "type": "AzureTable",
        "typeProperties": {
            "tableName": "MyTable"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Azure Table storage linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Hizmet tarafından şema çıkarımı

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

  • Kopyalama etkinliğinde sütun eşlemesini belirtirseniz, hizmet verileri almak için kaynak yan sütun listesini kullanır. Bu durumda, bir satır bir sütun için değer içermiyorsa, sütun için null değer sağlanır.
  • Kopyalama etkinliğinde sütun eşlemesini belirtmezseniz, hizmet verilerin ilk satırını kullanarak şemayı çıkarsar. Bu durumda, ilk satırda tam şema yoksa (örneğin, bazı sütunların null değeri varsa), kopyalama işleminin sonucunda bazı sütunlar atlanır.

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları makalesine bakın. Bu bölümde, Azure Tablo kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak türü olarak Azure Tablosu

Azure Tablosu'ndan veri kopyalamak için kopyalama etkinliğindeki kaynak türünü AzureTableSource olarak ayarlayın. Kopyalama etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type Kopyalama etkinliği kaynağının type özelliği AzureTableSource olarak ayarlanmalıdır. Evet
azureTableSourceQuery Verileri okumak için özel Tablo depolama sorgusunu kullanın.
Kaynak sorgu, Azure Tablo Depolama tarafından desteklenen sorgu seçeneğinden $filter bir doğrudan haritadır, bu belgedeki söz dizimi hakkında daha fazla bilgi edinin ve aşağıdaki azureTableSourceQuery örnekleri bölümündeki örneklere bakın.
No
azureTableSourceIgnoreTableNotFound Tablo özel durumunun mevcut olmamasına izin verilip verilmeyeceğini gösterir.
İzin verilen değerler True ve False (varsayılan) değerleridir.
No

azureTableSourceQuery örnekleri

Dekont

Azure Tablo hizmeti tarafından zorlanan Azure Tablo sorgusu işlemi 30 saniye içinde zaman aşımına uğrar. Sorgulama için tasarım makalesinden sorguyu iyileştirmeyi öğrenin.

Verileri tarih saat türündeki bir sütuna göre filtrelemek istiyorsanız şu örne bakın:

"azureTableSourceQuery": "LastModifiedTime gt datetime'2017-10-01T00:00:00' and LastModifiedTime le datetime'2017-10-02T00:00:00'"

Verileri bir dize türü sütununa göre filtrelemek istiyorsanız şu örne bakın:

"azureTableSourceQuery": "LastModifiedTime ge '201710010000_0000' and LastModifiedTime le '201710010000_9999'"

İşlem hattı parametresini kullanırsanız, datetime değerini önceki örneklere göre uygun biçime dönüştürebilirsiniz.

Havuz türü olarak Azure Tablosu

Verileri Azure Tablosu'na kopyalamak için kopyalama etkinliğindeki havuz türünü AzureTableSink olarak ayarlayın. Kopyalama etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
type Kopyalama etkinliği havuzu type özelliği AzureTableSink olarak ayarlanmalıdır. Evet
azureTableDefaultPartitionKeyValue Havuz tarafından kullanılabilecek varsayılan bölüm anahtarı 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. 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. 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 değiştirilmediğini denetler.

İzin verilen değerler birleştirilir (varsayılan) ve değiştirilir.

Bu ayar tablo düzeyinde değil satır düzeyinde geçerlidir. Her iki seçenek de çıkış tablosundaki girişte bulunmayan satırları silmez. Birleştirme ve değiştirme ayarlarının 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.
No
writeBatchSize writeBatchSize veya writeBatchTimeout'a basıldığında Azure Tablosuna veri ekler.
İzin verilen değerler tamsayıdır (satır sayısı).
Hayır (varsayılan değer 10.000'dir)
writeBatchTimeout writeBatchSize veya writeBatchTimeout'a basıldığında Azure Tablosuna veri ekler.
İzin verilen değerler zaman aralığıdır. Örnek olarak "00:20:00" (20 dakika) gösteriliyor.
Hayır (varsayılan değer 90 saniyedir, depolama istemcisinin varsayılan zaman aşımı)
 maxConcurrent Bağlan ions Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin.  No

Örnek:

"activities":[
    {
        "name": "CopyToAzureTable",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Table output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureTableSink",
                "azureTablePartitionKeyName": "<column name>",
                "azureTableRowKeyName": "<column name>"
            }
        }
    }
]

azureTablePartitionKeyName

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

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

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

Bölüm anahtarı olarak "DivisionID" belirtilir.

"sink": {
    "type": "AzureTableSink",
    "azureTablePartitionKeyName": "DivisionID"
}

Azure Tablosu için veri türü eşlemesi

azure tablosundan ve azure tablosuna veri kopyaladığınızda, azure tablo veri türlerinden hizmet içinde dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri.

Azure Tablosu'na veri taşıdığınızda, Azure Tablo tarafından tanımlanan aşağıdaki eşlemeler Azure Tablo OData türlerinden .NET türüne (veya tam tersi) kullanılır.

Azure Tablo veri türü Ara hizmet veri türü Ayrıntılar
Edm.Binary bayt[] 64 KB'a kadar bayt dizisi.
Edm.Boolean ikili Boole değeri.
Edm.DateTime DateTime Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen 64 bitlik bir değer. Desteklenen DateTime aralığı 1 Ocak 1601(C.E.), UTC gece yarısı başlar. Aralık 31 Aralık 9999'da sona erer.
Edm.Double çift 64 bit kayan nokta değeri.
Edm.Guid Guid 128 bit genel benzersiz tanımlayıcı.
Edm.Int32 Int32 32 bit tamsayı.
Edm.Int64 Int64 64 bit tamsayı.
Edm.String String UTF-16 ile kodlanmış bir değer. Dize değerleri en fazla 64 KB olabilir.

Arama etkinliği özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . Desteklenen veri depoları.