Memindahkan data ke dan dari Azure Table menggunakan Azure Data Factory

Catatan

Artikel ini berlaku untuk versi 1 dari Azure Data Factory. Jika Anda menggunakan versi layanan Azure Data Factory saat ini, lihat konektor Azure Table Storage di V2.

Artikel ini menjelaskan cara menggunakan Aktivitas Salin di Azure Data Factory untuk memindahkan data ke/dari Azure Table Storage. Ini dibuat pada artikel Aktivitas Pergerakan Data, yang menyajikan ikhtisar umum pergerakan data dengan aktivitas salin.

Anda dapat menyalin data dari penyimpanan data sumber yang didukung ke Azure Table Storage atau dari Azure Table Storage ke penyimpanan data sink yang didukung. Untuk daftar penyimpanan data yang didukung sebagai sumber atau sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.

Catatan

Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Memulai

Anda bisa membuat alur dengan aktivitas salin yang memindahkan data ke/dari Azure Table Storage dengan menggunakan alat/API berbeda.

Cara termudah untuk membuat alur adalah dengan menggunakan Wizard Salin. Lihat Tutorial: Membuat alur menggunakan Wizard Salin untuk panduan singkat tentang membuat alur menggunakan Wizard Salin data.

Anda juga dapat menggunakan alat berikut untuk membuat pipeline: Visual Studio, Azure PowerShell, template Azure Resource Manager, .NET API, dan REST API. Lihat Tutorial aktivitas penyalinan untuk instruksi langkah demi langkah guna membuat alur dengan aktivitas penyalinan.

Baik Anda menggunakan alat atau API, Anda melakukan langkah-langkah berikut untuk membuat alur yang memindahkan data dari penyimpanan data sumber ke penyimpanan data sink:

  1. Buat layanan tertaut untuk menautkan penyimpanan data input dan output ke pabrik data Anda.
  2. Buat kumpulan data untuk mewakili data input dan output untuk operasi salin.
  3. Buat jalur dengan aktivitas salinan yang mengambil set data sebagai input dan set data sebagai output.

Saat Anda menggunakan wizard, definisi JSON untuk entitas Data Factory ini (layanan tertaut, himpunan data, dan alur) secara otomatis dibuat untuk Anda. Saat Anda menggunakan alat/API (kecuali .NET API), Anda menentukan entitas Data Factory ini dengan menggunakan format JSON. Untuk contoh dengan definisi JSON untuk entitas Data Factory yang digunakan untuk menyalin data ke/dari Azure Table Storage, lihat bagian contoh JSON di artikel ini.

Bagian berikut memberikan detail tentang properti JSON yang digunakan untuk menentukan entitas Data Factory khusus untuk Azure Table Storage:

Properti layanan tertaut

Ada dua jenis layanan tertaut yang dapat Anda gunakan untuk menautkan penyimpanan blob Azure ke data factory Azure. Mereka adalah: Layanan tertaut AzureStorage dan layanan tertaut AzureStorageSas. Layanan tertaut Azure Storage memberi data factory akses global ke Microsoft Azure Storage. Sedangkan, layanan tertaut Azure Storage SAS (Tanda Tangan Akses Bersama) menyediakan data factory dengan akses terbatas/batas waktu ke Penyimpanan Azure. Tidak ada perbedaan lain antara kedua layanan yang ditautkan ini. Pilih layanan tertaut yang sesuai dengan kebutuhan Anda. Bagian berikut ini menyediakan detail selengkapnya tentang pustaka ini.

Layanan tertaut Azure Storage

Layanan tertaut Azure Storage memungkinkan Anda menautkan akun penyimpanan Azure ke Azure Data Factory dengan menggunakan kunci akun, yang memberi pabrik data akses global ke Azure Storage. Tabel berikut memberikan deskripsi untuk elemen JSON khusus layanan tertaut Azure Storage.

Properti Deskripsi Diperlukan
jenis Jenis properti harus disetel ke: AzureStorage Ya
connectionString Tentukan informasi yang diperlukan guna menghubungkan ke penyimpanan Azure untuk properti connectionString. Ya

Untuk informasi tentang cara mengambil kunci akses akun penyimpanan, lihat Mengelola kunci akses akun penyimpanan.

Contoh:

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

Layanan Tertaut Sas Azure Storage

Tanda tangan akses bersama (SAS) memberikan akses yang didelegasikan ke sumber daya di akun penyimpanan Anda. Hal ini memungkinkan Anda memberikan izin terbatas kepada klien untuk mengakses objek di akun penyimpanan Anda selama jangka waktu tertentu dan dengan serangkaian izin tertentu, tanpa harus membagikan kunci akses akun Anda. SAS adalah URI yang mencakup dalam parameter kuerinya semua informasi yang diperlukan untuk akses terautentikasi ke sumber daya penyimpanan. Untuk mengakses sumber daya penyimpanan dengan SAS, klien hanya perlu meneruskan SAS ke konstruktor atau metode yang sesuai. Untuk informasi selengkapnya tentang SAS, lihat Memberikan akses terbatas ke sumber daya Azure Storage dengan menggunakan tanda tangan akses bersama (SAS).

Penting

Azure Data Factory sekarang hanya mendukung Layanan SAS tetapi tidak mendukung SAS Akun. Perlu diperhatikan bahwa URL SAS yang dihasilkan dari portal Microsoft Azure atau Storage Explorer adalah SAS Akun, yang tidak didukung.

Tip

Anda dapat menjalankan perintah PowerShell di bawah ini untuk menghasilkan SAS Layanan untuk akun penyimpanan Anda (ganti tempat penampung dan berikan izin yang diperlukan): $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey>New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri

Layanan tertaut Azure Storage SAS memungkinkan Anda menautkan Akun Penyimpanan Azure ke pabrik data Azure dengan menggunakan Tanda Tangan Akses Bersama (SAS). Ini menyediakan pabrik data dengan akses terbatas/batas waktu ke semua/sumber daya tertentu (blob/kontainer) di penyimpanan. Tabel berikut memberikan deskripsi untuk elemen JSON khusus layanan tertaut SAS Azure Storage.

Properti Deskripsi Diperlukan
jenis Jenis properti harus disetel ke: AzureStorageSas Ya
sasUri Tentukan URI Tanda Tangan Akses Bersama ke sumber daya Azure Storage seperti blob, kontainer, atau tabel. Ya

Contoh:

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

Saat membuat URI SAS, pertimbangkan hal berikut:

  • Setel izin baca/tulis yang sesuai pada objek berdasarkan cara layanan tertaut (baca, tulis, baca/tulis) digunakan di pabrik data Anda.
  • Setel Waktu kedaluwarsa dengan tepat. Pastikan bahwa akses ke objek Azure Storage tidak kedaluwarsa dalam periode aktif alur.
  • Uri harus dibuat pada kontainer/blob atau tingkat Tabel yang tepat berdasarkan kebutuhan. Uri SAS ke blob Azure memungkinkan layanan Data Factory mengakses blob tertentu itu. Uri SAS ke kontainer blob Azure memungkinkan layanan Data Factory untuk beralih melalui blob dalam kontainer tersebut. Jika nanti Anda perlu memberikan akses lebih banyak/lebih sedikit ke objek, atau memperbarui URI SAS, ingatlah untuk memperbarui layanan tertaut dengan URI baru.

Properti himpunan data

Untuk daftar lengkap bagian properti & yang tersedia untuk menentukan himpunan data, lihat artikel Membuat himpunan data. Bagian-bagian seperti struktur, ketersediaan, dan kebijakan himpunan data JSON mirip untuk semua jenis himpunan data (Azure SQL, blob Azure, tabel Azure, dll.).

Bagian typeProperties berbeda untuk setiap jenis himpunan data dan menyediakan informasi tentang lokasi data di penyimpanan data. Bagian typeProperties untuk himpunan data jenis AzureTable memiliki properti berikut.

Properti Deskripsi Diperlukan
tableName Nama tabel dalam contoh Database Azure Table yang dirujuk oleh layanan tertaut. Ya. Saat tableName ditentukan tanpa azureTableSourceQuery, semua data dari tabel disalin ke tujuan. Jika azureTableSourceQuery juga ditentukan, rekaman dari tabel yang memenuhi kueri disalin ke tujuan.

Skema oleh Data Factory

Untuk penyimpanan data bebas skema seperti Azure Table, layanan Data Factory menyimpulkan skema dengan salah satu cara berikut:

  1. Jika Anda menentukan struktur data dengan menggunakan properti struktur dalam definisi himpunan data, layanan Azure Data Factory menghormati struktur ini sebagai skema. Dalam hal ini, jika baris tidak berisi nilai untuk kolom, nilai kosong akan disediakan untuk itu.
  2. Jika Anda tidak menentukan struktur data dengan menggunakan properti struktur dalam definisi himpunan data, layanan Azure Data Factory menghormati struktur ini sebagai skema. Dalam hal ini, jika baris pertama tidak berisi skema lengkap, beberapa kolom akan hilang dalam hasil operasi salin.

Oleh karena itu, untuk sumber data bebas skema, praktik terbaik adalah menentukan struktur data menggunakan properti struktur.

Properti aktivitas salin

Untuk daftar lengkap bagian & yang tersedia untuk menentukan himpunan data, lihat artikel Membuat Alur. Properti seperti nama, deskripsi, himpunan data input dan output, dan kebijakan tersedia untuk semua jenis aktivitas.

Properti yang tersedia di bagian typeProperties aktivitas bervariasi menurut setiap jenis aktivitas. Untuk aktivitas Salin, ini bervariasi tergantung pada jenis sumber dan sink.

AzureTableSource mendukung properti berikut ini di bagian typeProperties:

Properti Deskripsi Nilai yang diizinkan Diperlukan
azureTableSourceQuery Gunakan kueri kustom untuk membaca data. String kueri tabel Azure. Lihat contoh di bagian berikutnya. Nomor. Saat tableName ditentukan tanpa azureTableSourceQuery, semua data dari tabel disalin ke tujuan. Jika azureTableSourceQuery juga ditentukan, rekaman dari tabel yang memenuhi kueri disalin ke tujuan.
azureTableSourceIgnoreTableNotFound Menunjukkan apakah menelan pengecualian tabel tidak ada. TRUE
FALSE
Tidak

Contoh azureTableSourceQuery

Jika kolom Azure Table berdasarkan tipe string:

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

Jika kolom Azure Table berdasarkan tipe tanggalwaktu:

"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 mendukung properti berikut ini di bagian typeProperties:

Properti Deskripsi Nilai yang diizinkan Diperlukan
azureTableDefaultPartitionKeyValue Nilai kunci partisi default yang dapat digunakan oleh sink. Nilai string. Tidak
azureTablePartitionKeyName Tentukan nama kolom yang nilainya digunakan sebagai tombol partisi. Jika tidak ditentukan, AzureTableDefaultPartitionKeyValue digunakan sebagai kunci partisi. Nama kolom. Tidak
azureTableRowKeyName Tentukan nama kolom yang nilainya digunakan sebagai tombol partisi. Jika tidak ditentukan, gunakan GUID untuk setiap baris. Nama kolom. Tidak
azureTableInsertType Mode untuk menyisipkan data ke dalam tabel Azure.

Properti ini mengontrol apakah baris yang ada dalam tabel output dengan partisi yang cocok dan tombol baris memiliki nilainya diganti atau digabungkan.

Untuk mempelajari tentang cara kerja pengaturan ini (gabungkan dan ganti), lihat Menyisipkan atau Menggabungkan Entitas dan Menyisipkan atau Mengganti topik Entitas.

Pengaturan ini berlaku di tingkat baris, bukan tingkat tabel, dan tidak ada opsi yang menghapus baris dalam tabel output yang tidak ada di input.
Gabungkan (default)
ganti
Tidak
writeBatchSize Menyisipkan data ke dalam tabel Azure saat writeBatchSize atau writeBatchTimeout dipukul. Bilangan bulat (jumlah baris) Tidak (default: 10000)
writeBatchTimeout Menyisipkan data ke dalam tabel Azure saat writeBatchSize atau writeBatchTimeout tercapai timespan

Contoh: "00:20:00" (20 menit)
Tidak (Default ke nilai batas waktu default klien penyimpanan 90 detik)

azureTablePartitionKeyName

Petakan kolom sumber ke kolom tujuan menggunakan properti penerjemah JSON sebelum Anda bisa menggunakan kolom tujuan sebagai azureTablePartitionKeyName.

Dalam contoh berikut, kolom sumber DivisionID dipetakan ke kolom tujuan: DivisionID.

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

DivisionID ditentukan sebagai kunci partisi.

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

Contoh JSON

Contoh berikut ini menyediakan sampel definisi JSON yang bisa Anda gunakan untuk membuat alur dengan menggunakan Visual Studio atau Azure PowerShell. Mereka memperlihatkan cara menyalin data ke dan dari Azure Table Storage dan Database Azure Blob. Namun, data dapat disalin langsung dari salah satu sumber ke salah satu sink yang didukung. Untuk informasi selengkapnya, lihat bagian "Penyimpanan dan format data yang didukung" di Memindahkan data dengan menggunakan Aktivitas Salin.

Contoh: Salin data dari Azure Table ke Azure Blob

Contoh berikut menunjukkan:

  1. Layanan tertaut jenis AzureStorage (digunakan untuk tabel & blob).
  2. Sebuah input himpunan data jenis AzureTable.
  3. Sebuah output himpunan data jenis AzureBlob.
  4. Alur dengan aktivitas Salin yang menggunakan AzureTableSource dan BlobSink.

Sampel menyalin data milik partisi default dalam Azure Table ke blob setiap jam. Properti JSON yang digunakan dalam sampel ini dijelaskan dalam beberapa bagian setelah sampel.

Layanan tertaut Azure storage:

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

Azure Data Factory mendukung dua jenis layanan tertaut Microsoft Azure Storage: AzureStorage dan AzureStorageSas. Untuk yang pertama, Anda menentukan string koneksi yang menyertakan kunci akun dan untuk yang lebih baru, Anda menentukan Tanda Tangan Akses Bersama (SAS) Uri. Lihat Bagian Layanan Tertaut untuk detailnya.

Himpunan data input Azure Table:

Sampel mengasumsikan Anda telah membuat tabel "MyTable" di Azure Table.

Pengaturan "eksternal": "true" menginformasikan layanan Data Factory bahwa himpunan data berada di luar data factory dan tidak diproduksi oleh aktivitas di data factory.

{
  "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
      }
    }
  }
}

himpunan data output Azure Blob:

Data ditulis ke blob baru setiap jam (frekuensi: jam, interval: 1). Jalur folder untuk blob dievaluasi secara dinamis berdasarkan waktu mulai irisan yang sedang diproses. Jalur folder menggunakan bagian tahun, bulan, hari, dan jam dari waktu mulai.

{
  "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
    }
  }
}

Aktivitas salin dalam alur dengan AzureTableSource dan BlobSink:

Alur berisi Aktivitas Salin yang dikonfigurasi untuk menggunakan himpunan data input dan output dan dijadwalkan untuk berjalan setiap jam. Dalam definisi alur JSON, jenissumber diatur ke AzureTableSource dan jenis sink diatur ke BlobSink. Kueri SQL yang ditentukan dengan properti AzureTableSourceQuery memilih data dari partisi default setiap jam untuk disalin.

{
    "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"
                }
            }
        ]
    }
}

Contoh: Salin data dari Azure Blob ke Azure Table

Contoh berikut menunjukkan:

  1. Layanan tertaut jenis AzureStorage (digunakan untuk tabel & blob)
  2. Sebuah input himpunan data jenis AzureBlob.
  3. Sebuah output himpunan data jenis AzureTable.
  4. Alur dengan aktivitas Salin yang menggunakan BlobSource dan AzureTableSink.

Sampel menyalin data seri waktu dari blob Azure ke tabel Azure per jam. Properti JSON yang digunakan dalam sampel ini dijelaskan dalam beberapa bagian setelah sampel.

Penyimpanan Azure (untuk Azure Table & Blob) layanan tertaut:

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

Azure Data Factory mendukung dua jenis layanan tertaut Microsoft Azure Storage: AzureStorage dan AzureStorageSas. Untuk yang pertama, Anda menentukan string koneksi yang menyertakan kunci akun dan untuk yang lebih baru, Anda menentukan Tanda Tangan Akses Bersama (SAS) Uri. Lihat bagian Layanan Tertaut untuk detailnya.

himpunan data input Azure Blob:

Data ditulis ke blob baru setiap jam (frekuensi: jam, interval: 1). Jalur folder dan nama file untuk blob dievaluasi secara dinamis berdasarkan waktu mulai yang sedang diproses. Jalur folder menggunakan bagian tahun, bulan, dan hari dari waktu mulai dan nama file menggunakan bagian jam dari waktu mulai. Pengaturan "eksternal": "true" menginformasikan layanan Data Factory bahwa himpunan data berada di luar data factory dan tidak diproduksi oleh aktivitas di data factory.

{
  "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
      }
    }
  }
}

himpunan data output Azure Table:

Sampel menyalin data ke tabel bernama "MyTable" di Azure Table. Buat tabel Azure dengan jumlah kolom yang sama seperti yang Anda harapkan untuk dimuat file CSV Blob. Baris baru ditambahkan ke tabel setiap jam.

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

Salin aktivitas dalam saluran dengan BlobSource dan AzureTableSink:

Alur berisi Aktivitas Salin yang dikonfigurasi untuk menggunakan himpunan data input dan output dan dijadwalkan untuk berjalan setiap jam. Dalam definisi alur JSON, jenis source disetel ke BlobSource dan jenis sink disetel ke AzureTableSink.

{
  "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"
        }
      }
    ]
  }
}

Pemetaan jenis data untuk Azure Table

Seperti disebutkan dalam artikel aktivitas pergerakan data, Aktivitas Salin melakukan konversi jenis otomatis dari jenis sumber ke jenis sink dengan pendekatan dua langkah berikut.

  1. Konversi dari jenis sumber asli menjadi jenis .NET
  2. Konversi dari jenis .NET ke jenis sink asli

Saat Anda memindahkan data ke dan & dari Azure Table, pemetaan berikut yang ditentukan oleh layanan Azure Table yang digunakan dari jenis OData Azure Table ke jenis .NET dan sebaliknya.

Jenis Data OData Jenis .NET Detail
Edm.Binary byte[] Array byte hingga 64 KB.
Edm.Boolean bool Nilai Boolean.
Edm.DateTime DateTime Nilai 64-bit yang dinyatakan sebagai Waktu Universal Terkoordinasi (UTC). Rentang DateTime yang didukung dimulai dari 12:00 tengah malam, 1 Januari 1601 A.D. Rentang berakhir 31 Desember 9999.
Edm.Double double Nilai titik float 64-bit.
Edm.Guid Guid Pengidentifikasi unik global 128-bit.
Edm.Int32 Int32 bilangan bulat 32-bit.
Edm.Int64 Int64 bilangan bulat 64-bit.
Edm.String String Nilai yang dikodekan UTF-16. Nilai string mungkin hingga 64 KB.

Contoh Konversi Tipe

Contoh berikut adalah untuk menyalin data dari Azure Blob ke Azure Table dengan konversi tipe.

Misalkan himpunan data Blob dalam format CSV dan berisi tiga kolom. Salah satunya adalah kolom tanggalwaktu dengan format tanggalwaktu kustom menggunakan nama Prancis yang disingkat untuk hari dalam seminggu.

Tentukan himpunan data Sumber Blob sebagai berikut dengan definisi tipe untuk kolom.

{
    "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
            }
        }
    }
}

Mengingat pemetaan tipe dari jenis OData Azure Table ke tipe .NET, Anda akan menentukan tabel di Azure Table dengan skema berikut ini.

Skema Azure Table:

Nama kolom Jenis
userid Edm.Int64
nama Edm.String
lastlogindate Edm.DateTime

Berikutnya, tentukan himpunan data Azure Table sebagai berikut. Anda tidak perlu menentukan bagian "struktur" dengan informasi tipe karena informasi tipe sudah ditentukan di penyimpanan data yang mendasarinya.

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

Dalam hal ini, Data Factory secara otomatis melakukan konversi tipe termasuk bidang Datetime dengan format tanggalwaktu kustom menggunakan buharia "fr-fr" saat memindahkan data dari Blob ke Azure Table.

Catatan

Untuk memetakan kolom dari set data sumber ke kolom dari set data sink, lihat Memetakan kolom set data di Azure Data Factory.

Kinerja dan Penyetelan

Untuk mempelajari tentang faktor-faktor utama yang memengaruhi performa pemindahan data (Aktivitas Salin) di Azure Data Factory dan berbagai cara untuk mengoptimalkannya, lihat Performa Aktivitas Salin & Pedoman Penyetelan.