Menyalin data ke dan dari penyimpanan Azure Table menggunakan Azure Data Factory atau Synapse Analytics
BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menguraikan cara menggunakan Salin Aktivitas di alur Azure Data Factory dan Synapse Analytics untuk menyalin data ke dan dari penyimpanan Azure Table. Ini dibangun pada artikel Gambaran umum Salin Aktivitas yang menyajikan gambaran umum Salin Aktivitas.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Kemampuan yang didukung
Konektor penyimpanan Azure Table ini didukung untuk kemampuan berikut ini:
Kemampuan yang didukung | IR | Titik akhir privat terkelola |
---|---|---|
Salin aktivitas (sumber/sink) | (1) (2) | ✓ Mengecualikan akun penyimpanan V1 |
Aktivitas pencarian | (1) (2) | ✓ Mengecualikan akun penyimpanan V1 |
① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri
Anda juga dapat menyalin data dari penyimpanan data sumber yang didukung ke penyimpanan Tabel. Anda juga dapat menyalin data dari penyimpanan Tabel 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.
Secara khusus, konektor Azure Table ini mendukung penyalinan data dengan menggunakan kunci akun dan autentikasi tanda tangan akses bersama layanan.
Memulai
Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Penyalinan Data
- Portal Microsoft Azure
- SDK .NET
- SDK Python
- Azure PowerShell
- REST API
- Templat Azure Resource Manager
Membuat layanan terkait penyimpanan Azure Table menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan terkait penyimpanan Azure Table di UI portal Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari Azure Table dan pilih konektor penyimpanan Azure Table.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas khusus untuk penyimpanan Tabel Azure.
Properti layanan tertaut
Konektor Azure Table Storage ini mendukung jenis autentikasi berikut. Lihat bagian terkait untuk detailnya.
- Autentikasi kunci akun
- Autentikasi tanda tangan akses bersama
- Autentikasi identitas terkelola yang ditetapkan sistem
- Autentikasi identitas terkelola yang ditetapkan pengguna
Autentikasi kunci akun
Anda dapat membuat layanan tertaut Azure Storage dengan menggunakan kunci akun. Ini menyediakan layanan dengan akses global ke Storage. Properti berikut ini didukung.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus disetel ke AzureTableStorage | Ya |
connectionString | Tentukan informasi yang diperlukan untuk menyambungkan ke Storage untuk properti connectionString. Anda juga dapat meletakkan kunci akun di Azure Key Vault dan mengeluarkan accountKey konfigurasi dari string koneksi. Lihat sampel berikut dan artikel Menyimpan info masuk di Azure Key Vault untuk detail selengkapnya. |
Ya |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Integration Runtime Azure atau Integration Runtime yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Catatan
Jika Anda menggunakan layanan tertaut jenis "AzureStorage", layanan tersebut masih didukung apa adanya, sementara Anda disarankan untuk menggunakan jenis layanan tertaut "AzureTableStorage" baru ini ke depannya.
Contoh:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh: menyimpan kunci akun di Azure Key Vault
{
"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"
}
}
}
Autentikasi tanda tangan akses bersama
Anda juga dapat membuat layanan penyimpanan yang ditautkan dengan menggunakan tanda tangan akses bersama. Ini menyediakan Data Factory dengan akses terbatas/batas waktu ke semua/sumber daya tertentu di penyimpanan.
Tanda tangan akses bersama menyediakan akses yang didelegasikan ke sumber daya di akun penyimpanan Anda. Anda dapat menggunakannya untuk memberikan izin terbatas kepada klien kepada objek di akun penyimpanan Anda untuk waktu yang ditentukan dan dengan sekumpulan izin tertentu. Anda tidak perlu membagikan kunci akses akun Anda. Tanda tangan akses bersama adalah URI yang parameter kuerinya mencakup semua informasi yang diperlukan untuk akses terautentikasi ke sumber daya penyimpanan. Untuk mengakses sumber daya penyimpanan dengan tanda tangan akses bersama, klien hanya perlu meneruskan tanda tangan akses bersama ke konstruktor atau metode yang sesuai. Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat Tanda tangan akses bersama: Memahami model tanda tangan akses bersama.
Catatan
Data Factory kini mendukung tanda tangan akses bersama layanan dan tanda tangan akses bersama akun. Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat Berikan akses terbatas ke sumber daya Azure Storage dengan menggunakan tanda tangan akses berbagi (SAS).
Tip
Untuk menghasilkan tanda tangan akses bersama layanan untuk akun penyimpanan Anda, Anda bisa menjalankan perintah PowerShell berikut. Ganti tempat penampung dan beri izin yang diperlukan.
$context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey>
New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri
Untuk menggunakan autentikasi tanda tangan akses bersama, properti berikut ini didukung.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus disetel ke AzureTableStorage | Ya |
sasUri | Tentukan SAS URI dari URI tanda tangan akses bersama ke tabel. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Anda juga dapat meletakkan token SAS di Azure Key Vault untuk memanfaatkan rotasi otomatis dan menghapus bagian token. Lihat sampel berikut dan artikel Menyimpan info masuk di Azure Key Vault untuk detail selengkapnya. |
Ya |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Integration Runtime Azure atau Integration Runtime yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Catatan
Jika Anda menggunakan layanan tertaut jenis "AzureStorage", layanan tersebut masih didukung apa adanya, sementara Anda disarankan untuk menggunakan jenis layanan tertaut "AzureTableStorage" baru ini ke depannya.
Contoh:
{
"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>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh: menyimpan kunci akun di Azure Key Vault
{
"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"
}
}
}
Saat Anda membuat URI tanda tangan akses bersama, pertimbangkan poin berikut:
- Tetapkan izin baca/tulis yang sesuai pada objek berdasarkan cara layanan tertaut (baca, tulis, baca/tulis) digunakan.
- Set Waktu kedaluwarsa dengan tepat. Pastikan bahwa akses ke objek Storage tidak kedaluwarsa dalam periode aktif alur.
- URI harus dibuat pada tingkat tabel yang tepat berdasarkan kebutuhan.
Autentikasi identitas terkelola yang ditetapkan sistem
Pabrik data atau alur Synapse dapat dikaitkan dengan identitas terkelola yang ditetapkan sistem untuk sumber daya Azure, yang mewakili sumber daya tersebut untuk autentikasi ke layanan Azure lainnya. Anda dapat menggunakan identitas terkelola yang ditetapkan sistem ini untuk autentikasi Azure Table Storage. Untuk mempelajari lebih lanjut tentang identitas terkelola untuk sumber daya Azure, lihat Identitas terkelola untuk sumber daya Azure
Untuk menggunakan autentikasi identitas terkelola yang ditetapkan sistem, ikuti langkah-langkah berikut:
Ambil informasi identitas terkelola yang ditetapkan sistem dengan menyalin nilai ID objek identitas terkelola yang ditetapkan sistem yang dihasilkan bersama dengan pabrik atau ruang kerja Synapse Anda.
Berikan izin identitas terkelola di Azure Table Storage. Untuk informasi selengkapnya tentang peran, lihat artikel ini.
- Sebagai sumber, dalam Kontrol akses (IAM), berikan setidaknya peran Pembaca Data Tabel Penyimpanan.
- Sebagai sink, dalam Kontrol akses (IAM), berikan setidaknya peran Kontributor Data Tabel Penyimpanan.
Properti ini didukung untuk layanan tertaut Azure Table Storage:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke AzureTableStorage. | Ya |
serviceEndpoint | Tentukan titik akhir layanan Azure Table Storage dengan pola https://<accountName>.table.core.windows.net/ . |
Ya |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Azure Integration Runtime. Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Catatan
Autentikasi identitas terkelola yang ditetapkan sistem hanya didukung oleh runtime integrasi Azure.
Contoh:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.table.core.windows.net/"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autentikasi identitas terkelola yang ditetapkan pengguna
Sebuah pabrik data dapat ditetapkan dengan satu atau beberapa identitas terkelola yang ditetapkan pengguna. Anda dapat menggunakan identitas terkelola yang ditetapkan pengguna ini untuk autentikasi Azure Table Storage, yang memungkinkan untuk mengakses dan menyalin data dari atau ke Azure Table Storage. Untuk mempelajari lebih lanjut tentang identitas terkelola untuk sumber daya Azure, lihat Identitas terkelola untuk sumber daya Azure
Untuk menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, ikuti langkah-langkah berikut:
Buat satu atau beberapa identitas terkelola yang ditetapkan pengguna dan berikan izin di Azure Table Storage. Untuk informasi selengkapnya tentang peran, lihat artikel ini.
- Sebagai sumber, dalam Kontrol akses (IAM), berikan setidaknya peran Pembaca Data Tabel Penyimpanan.
- Sebagai sink, dalam Kontrol akses (IAM), berikan setidaknya peran Kontributor Data Tabel Penyimpanan.
Tetapkan satu atau beberapa identitas terkelola yang ditetapkan pengguna ke pabrik data Anda dan buat info masuk untuk setiap identitas terkelola yang ditetapkan pengguna.
Properti ini didukung untuk layanan tertaut Azure Table Storage:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke AzureTableStorage. | Ya |
serviceEndpoint | Tentukan titik akhir layanan Azure Table Storage dengan pola https://<accountName>.table.core.windows.net/ . |
Ya |
informasi masuk | Tentukan identitas terkelola yang ditetapkan pengguna sebagai objek kredensial. | Ya |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Integration Runtime Azure atau Integration Runtime yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Contoh:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.table.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data. Bagian ini menyediakan daftar properti yang didukung oleh himpunan data Tabel Azure.
Untuk menyalin data ke dan dari Tabel Azure, setel properti jenis himpunan data ke TabelAzure. Properti berikut ini didukung.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis dari himpunan data harus diatur ke TabelAzure. | Ya |
tableName | Nama tabel dalam instans DB penyimpanan Tabel yang dirujuk oleh layanan tertaut. | Ya |
Contoh:
{
"name": "AzureTableDataset",
"properties":
{
"type": "AzureTable",
"typeProperties": {
"tableName": "MyTable"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Azure Table storage linked service name>",
"type": "LinkedServiceReference"
}
}
}
Inferensi skema oleh Data Factory
Untuk penyimpanan data bebas skema seperti Azure Table, Data Factory menyimpulkan skema dengan salah satu cara berikut:
- Jika Anda menentukan pemetaan kolom dalam aktivitas salin, Data Factory menggunakan daftar kolom sisi sumber untuk mengambil data. Dalam hal ini, jika baris tidak berisi nilai untuk kolom, nilai kosong akan disediakan untuk itu.
- Jika Anda tidak menentukan pemetaan kolom dalam aktivitas salin, Data Factory menyimpulkan skema dengan menggunakan baris pertama dalam data. Dalam hal ini, jika baris pertama tidak berisi skema lengkap (misalnya beberapa kolom memiliki nilai null), beberapa kolom terlewatkan dalam hasil operasi salin.
Properti aktivitas salin
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Alur. Bagian ini menyediakan daftar properti yang didukung oleh sumber dan sink Tabel Azure.
Tabel Azure sebagai jenis sumber
Untuk menyalin data dari Tabel Azure, atur jenis sumber dalam aktivitas salin ke SumberTabelAzure. Properti berikut ini didukung di bagian sumber aktivitas salin.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas salin harus diatur ke SumberTabelAzure. | Ya |
azureTableSourceQuery | Gunakan kueri penyimpanan Tabel kustom untuk membaca data. Kueri sumber adalah peta langsung dari opsi $filter kueri yang didukung oleh Azure Table Storage, pelajari selengkapnya tentang sintaks dari dokumen ini, dan lihat contoh di bagian contoh azureTableSourceQuery berikut ini. |
No |
azureTableSourceIgnoreTableNotFound | Menunjukkan apakah akan memperbolehkan pengecualian tabel tidak ada. Nilai yang diizinkan adalah True dan False (default). |
No |
contoh azureTableSourceQuery
Catatan
Waktu operasi kueri Tabel Azure habis dalam 30 detik seperti yang diberlakukan oleh layanan Tabel Azure. Pelajari cara mengoptimalkan kueri dari artikel Desain untuk mengkueri.
Jika Anda ingin memfilter data terhadap kolom jenis tanggalwaktu, lihat contoh ini:
"azureTableSourceQuery": "LastModifiedTime gt datetime'2017-10-01T00:00:00' and LastModifiedTime le datetime'2017-10-02T00:00:00'"
Jika Anda ingin memfilter data terhadap kolom jenis untai (karakter), lihat contoh ini:
"azureTableSourceQuery": "LastModifiedTime ge '201710010000_0000' and LastModifiedTime le '201710010000_9999'"
Jika Anda menggunakan parameter alur, lemparkan nilai tanggalwaktu ke format yang tepat sesuai dengan sampel sebelumnya.
Tabel Azure sebagai jenis sink
Untuk menyalin data ke Tabel Azure, setel jenis sink dalam aktivitas salin ke SinkTabelAzure. Properti berikut ini didukung di bagian sink aktivitas salin.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sink aktivitas salin harus diatur ke SinkTabelAzure. | Ya |
azureTableDefaultPartitionKeyValue | Nilai kunci partisi default yang dapat digunakan oleh sink. | No |
azureTablePartitionKeyName | Tentukan nama kolom yang nilainya digunakan sebagai kunci partisi. Jika tidak ditentukan, AzureTableDefaultPartitionKeyValue digunakan sebagai kunci partisi. | No |
azureTableRowKeyName | Tentukan nama kolom yang nilai kolomnya digunakan sebagai kunci baris. Jika tidak ditentukan, gunakan GUID untuk setiap baris. | No |
azureTableInsertType | Mode untuk menyisipkan data ke dalam Azure Table. Properti ini mengontrol apakah baris yang ada dalam tabel output dengan partisi yang cocok dan tombol baris memiliki nilainya diganti atau digabungkan. Nilai yang diperbolehkan gabung (default) dan ganti. Pengaturan ini berlaku di tingkat baris bukan tingkat tabel. Tidak ada opsi yang menghapus baris dalam tabel output yang tidak ada di input. Untuk mempelajari tentang cara kerja pengaturan ini (gabungkan dan ganti), lihat Menyisipkan atau Menggabungkan Entitas dan Menyisipkan atau Mengganti topik Entitas. |
No |
writeBatchSize | Menyisipkan data ke dalam Azure Table saat writeBatchSize atau writeBatchTimeout tercapai. Nilai yang diperbolehkan adalah bilangan bulat (jumlah baris). |
Tidak (defaultnya adalah 10.000) |
writeBatchTimeout | Menyisipkan data ke dalam Azure Table saat writeBatchSize atau writeBatchTimeout tercapai. Nilai yang diperbolehkan adalah rentang waktu Contohnya adalah "00:20:00" untuk 20 menit. |
Tidak (default adalah 90 detik, batas waktu default klien penyimpanan) |
maxConcurrentConnections | Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama eksekusi aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. | Tanpa |
Contoh:
"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
Petakan kolom sumber ke kolom tujuan dengan menggunakan properti "penerjemah" 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"
}
Pemetaan jenis data untuk Tabel Azure
Saat Anda menyalin data dari dan ke Azure Table, pemetaan berikut ini digunakan dari jenis data Azure Table ke jenis data interim yang digunakan secara internal dalam Data Factory. Untuk mempelajari bagaimana aktivitas salin memetakan skema sumber dan jenis data ke sink, lihat Pemetaan skema dan jenis data.
Saat Anda memindahkan data ke dan dari Tabel Azure, pemetaan berikut yang ditentukan oleh Tabel Azure digunakan dari jenis OData Tabel Azure ke jenis .NET dan sebaliknya.
Jenis data Tabel Azure | Jenis data layanan sementara | 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 TanggalWaktu yang didukung dimulai tengah malam, 1 Januari 1601 M (C.E.), UTC. Rentang berakhir 31 Desember 9999. |
Edm.Double | ganda | 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 untai (karakter) bisa mencapai 64 KB. |
Properti aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.