Tutorial: Menggunakan templat Azure Resource Manager untuk membuat alur Azure Data Factory untuk menyalin data
Catatan
Artikel ini berlaku untuk versi 1 dari Data Factory. Jika menggunakan versi saat ini dari layanan Azure Data Factory, lihat tutorial aktivitas salin.
Tutorial ini memperlihatkan kepada Anda cara menggunakan templat Azure Resource Manager untuk membuat pabrik data Azure. Alur data dalam tutorial ini menyalin data dari penyimpanan data sumber ke penyimpanan data tujuan. Ini tidak mengubah data input untuk menghasilkan data output. Untuk tutorial tentang cara mengubah data menggunakan Azure Data Factory, lihat Tutorial: Membangun alur untuk mengubah data menggunakan kluster Hadoop.
Dalam tutorial ini, buat alur dengan satu aktivitas di dalamnya: Aktivitas Salin. Aktivitas salin menyalin data dari penyimpanan data yang didukung ke penyimpanan data sink yang didukung. Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink, lihat penyimpanan data yang didukung. Aktivitas ini didukung oleh layanan yang tersedia secara global yang dapat menyalin data antara berbagai penyimpanan data dengan cara yang aman, andal, dan dapat diskalakan. Untuk informasi selengkapnya tentang Aktivitas Salin, lihat Aktivitas Pergerakan Data.
Sebuah alur dapat memiliki lebih dari satu aktivitas. Selain itu, Anda dapat merangkai dua aktivitas (menjalankan satu demi satu aktivitas) dengan mengatur himpunan data output dari satu aktivitas sebagai himpunan data input aktivitas lainnya. Untuk informasi selengkapnya, lihat beberapa aktivitas dalam alur.
Catatan
Alur data dalam tutorial ini menyalin data dari penyimpanan data sumber ke penyimpanan data tujuan. Untuk tutorial tentang cara mengubah data menggunakan Azure Data Factory, lihat Tutorial: Membangun alur untuk mengubah data menggunakan kluster Hadoop.
Prasyarat
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.
- Buka Gambaran Umum Tutorial dan selesaikan langkah-langkah prasyarat.
- Ikuti instruksi dalam Cara menginstal dan mengonfigurasi artikel Azure PowerShell untuk menginstal versi terbaru Azure PowerShell di komputer Anda. Dalam tutorial ini, Gunakan PowerShell untuk menggunakan entitas Azure Data Factory.
- Untuk mempelajari tentang membuat templat Resource Manager, lihatPenulisan templat Azure Resource Manager.
Dalam tutorial ini
Dalam tutorial ini, buat pabrik data dengan entitas Azure Data Factory berikut:
| Entitas | Deskripsi |
|---|---|
| Layanan tertaut Azure Storage | Menautkan akun Microsoft Azure Storage Anda ke pabrik data. Azure Storage merupakan penyimpanan data sumber dan Azure SQL Database merupakan penyimpanan data wastafel untuk aktivitas salin dalam tutorial. Dapat menentukan akun penyimpanan yang berisi data input untuk aktivitas salinan. |
| Layanan tertaut Azure SQL Database | Menautkan database kami di Azure SQL Database ke pabrik data. Ini menentukan database yang menyimpan data output untuk aktivitas salinan. |
| Himpunan data input Azure Blob | Mengacu pada layanan tertaut Azure Storage. Layanan yang ditautkan merujuk ke akun Azure Storage dan himpunan data Azure Blob menentukan kontainer, folder, dan nama file dalam penyimpanan yang menyimpan data input. |
| Himpunan data output Azure SQL | Mengacu pada layanan tertaut Azure SQL. Layanan tertaut Azure SQL mengacu pada server SQL logis dan himpunan data Azure SQL menentukan nama tabel yang menyimpan data output. |
| Gunakan alur data | Alur memiliki satu aktivitas jenis Salin yang mengambil himpunan data blob Azure sebagai input dan himpunan data Azure SQL sebagai output. Aktivitas salin menyalin data dari blob Azure ke tabel di Azure SQL Database. |
Pabrik data dapat memiliki satu atau beberapa alur. Alur dapat memiliki satu atau beberapa aktivitas di dalamnya. Ada dua jenis aktivitas: aktivitas pergerakan datadanaktivitas transformasi data. Dalam tutorial ini, buat alur dengan satu aktivitas di dalamnya (aktivitas salin).
Bagian berikut ini menyediakan templat Azure Resource Manager lengkap untuk mendefinisikan entitas Azure Data Factory sehingga Anda dapat dengan cepat menjalankan tutorial dan menguji templat. Untuk memahami bagaimana setiap entitas Azure Data Factory ditentukan, lihat Entitas Azure Data Factory di bagian templat.
Templat Azure Data Factory JSON
Templat Azure Resource Manager tingkat teratas untuk mendefinisikan pabrik data adalah:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": { ...
},
"variables": { ...
},
"resources": [
{
"name": "[parameters('dataFactoryName')]",
"apiVersion": "[variables('apiVersion')]",
"type": "Microsoft.DataFactory/datafactories",
"location": "westus",
"resources": [
{ ... },
{ ... },
{ ... },
{ ... }
]
}
]
}
Buat file JSON bernama ADFCopyTutorialARM.jsdi di folder C:\ADFGetStarted dengan konten berikut:
{
"contentVersion": "1.0.0.0",
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"parameters": {
"storageAccountName": { "type": "string", "metadata": { "description": "Name of the Azure storage account that contains the data to be copied." } },
"storageAccountKey": { "type": "securestring", "metadata": { "description": "Key for the Azure storage account." } },
"sourceBlobContainer": { "type": "string", "metadata": { "description": "Name of the blob container in the Azure Storage account." } },
"sourceBlobName": { "type": "string", "metadata": { "description": "Name of the blob in the container that has the data to be copied to Azure SQL Database table" } },
"sqlServerName": { "type": "string", "metadata": { "description": "Name of the logical SQL server that will hold the output/copied data." } },
"databaseName": { "type": "string", "metadata": { "description": "Name of the Azure SQL Database in the logical SQL server." } },
"sqlServerUserName": { "type": "string", "metadata": { "description": "Name of the user that has access to the logical SQL server." } },
"sqlServerPassword": { "type": "securestring", "metadata": { "description": "Password for the user." } },
"targetSQLTable": { "type": "string", "metadata": { "description": "Table in the Azure SQL Database that will hold the copied data." }
}
},
"variables": {
"dataFactoryName": "[concat('AzureBlobToAzureSQLDatabaseDF', uniqueString(resourceGroup().id))]",
"azureSqlLinkedServiceName": "AzureSqlLinkedService",
"azureStorageLinkedServiceName": "AzureStorageLinkedService",
"blobInputDatasetName": "BlobInputDataset",
"sqlOutputDatasetName": "SQLOutputDataset",
"pipelineName": "Blob2SQLPipeline"
},
"resources": [
{
"name": "[variables('dataFactoryName')]",
"apiVersion": "2015-10-01",
"type": "Microsoft.DataFactory/datafactories",
"location": "West US",
"resources": [
{
"type": "linkedservices",
"name": "[variables('azureStorageLinkedServiceName')]",
"dependsOn": [
"[variables('dataFactoryName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureStorage",
"description": "Azure Storage linked service",
"typeProperties": {
"connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]"
}
}
},
{
"type": "linkedservices",
"name": "[variables('azureSqlLinkedServiceName')]",
"dependsOn": [
"[variables('dataFactoryName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureSqlDatabase",
"description": "Azure SQL linked service",
"typeProperties": {
"connectionString": "[concat('Server=tcp:',parameters('sqlServerName'),'.database.windows.net,1433;Database=', parameters('databaseName'), ';User ID=',parameters('sqlServerUserName'),';Password=',parameters('sqlServerPassword'),';Trusted_Connection=False;Encrypt=True;Connection Timeout=30')]"
}
}
},
{
"type": "datasets",
"name": "[variables('blobInputDatasetName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureStorageLinkedServiceName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureBlob",
"linkedServiceName": "[variables('azureStorageLinkedServiceName')]",
"structure": [
{
"name": "Column0",
"type": "String"
},
{
"name": "Column1",
"type": "String"
}
],
"typeProperties": {
"folderPath": "[concat(parameters('sourceBlobContainer'), '/')]",
"fileName": "[parameters('sourceBlobName')]",
"format": {
"type": "TextFormat",
"columnDelimiter": ","
}
},
"availability": {
"frequency": "Hour",
"interval": 1
},
"external": true
}
},
{
"type": "datasets",
"name": "[variables('sqlOutputDatasetName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureSqlLinkedServiceName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureSqlTable",
"linkedServiceName": "[variables('azureSqlLinkedServiceName')]",
"structure": [
{
"name": "FirstName",
"type": "String"
},
{
"name": "LastName",
"type": "String"
}
],
"typeProperties": {
"tableName": "[parameters('targetSQLTable')]"
},
"availability": {
"frequency": "Hour",
"interval": 1
}
}
},
{
"type": "datapipelines",
"name": "[variables('pipelineName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureStorageLinkedServiceName')]",
"[variables('azureSqlLinkedServiceName')]",
"[variables('blobInputDatasetName')]",
"[variables('sqlOutputDatasetName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"activities": [
{
"name": "CopyFromAzureBlobToAzureSQL",
"description": "Copy data frm Azure blob to Azure SQL",
"type": "Copy",
"inputs": [
{
"name": "[variables('blobInputDatasetName')]"
}
],
"outputs": [
{
"name": "[variables('sqlOutputDatasetName')]"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"sqlWriterCleanupScript": "$$Text.Format('DELETE FROM {0}', 'emp')"
},
"translator": {
"type": "TabularTranslator",
"columnMappings": "Column0:FirstName,Column1:LastName"
}
},
"Policy": {
"concurrency": 1,
"executionPriorityOrder": "NewestFirst",
"retry": 3,
"timeout": "01:00:00"
}
}
],
"start": "2017-05-11T00:00:00Z",
"end": "2017-05-12T00:00:00Z"
}
}
]
}
]
}
Parameter JSON
Buat file JSON bernama ADFCopyTutorialARM-Parameters.js yang berisi parameter untuk templat Azure Resource Manager.
Penting
Tentukan nama dan kunci akun Microsoft Azure Storage Anda untuk parameter storageAccountName dan storageAccountKey.
Tentukan server SQL logis, database, pengguna, dan kata sandi untuk parameter sqlServerName, databaseName, sqlServerUserName, dan sqlServerPassword.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": { "value": "<Name of the Azure storage account>" },
"storageAccountKey": {
"value": "<Key for the Azure storage account>"
},
"sourceBlobContainer": { "value": "adftutorial" },
"sourceBlobName": { "value": "emp.txt" },
"sqlServerName": { "value": "<Name of the logical SQL server>" },
"databaseName": { "value": "<Name of the database>" },
"sqlServerUserName": { "value": "<Name of the user who has access to the database>" },
"sqlServerPassword": { "value": "<password for the user>" },
"targetSQLTable": { "value": "emp" }
}
}
Penting
Anda mungkin memiliki parameter terpisah file JSON untuk pengembangan, pengujian, dan lingkungan produksi yang dapat Anda gunakan dengan templat Azure Data Factory JSON yang sama. Dengan menggunakan skrip Power Shell, Anda dapat mengotomatiskan penyebaran entitas Data Factory di lingkungan ini.
Buat pabrik data
Mulai Azure PowerShell dan jalankan perintah berikut ini:
Jalankan perintah berikut dan masukkan nama pengguna serta kata sandi yang Anda gunakan untuk masuk ke portal Microsoft Azure.
Connect-AzAccountJalankan perintah berikut untuk menampilkan semua langganan untuk akun ini.
Get-AzSubscriptionJalankan perintah berikut untuk pilih langganan yang ingin Anda kerjakan.
Get-AzSubscription -SubscriptionName <SUBSCRIPTION NAME> | Set-AzContext
Jalankan perintah berikut untuk menggunakan entitas Azure Data Factory menggunakan templat Azure Resource Manager yang Anda buat di Langkah 1.
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile C:\ADFGetStarted\ADFCopyTutorialARM.json -TemplateParameterFile C:\ADFGetStarted\ADFCopyTutorialARM-Parameters.json
Alur monitor
Masuk ke portal Microsoft Azure menggunakan akun Anda.
KlikPabrik datadi menu sebelah kiri (atau) klikSemua layanandan klik Pabrik datadi kategoriINTELLIGENCE + ANALYTICS.
Di halamanPabrik data, cari dan temukan pabrik data Anda (AzureBlobToAzureSQLDatabaseDF).
Klik pabrik data Azure Anda. Anda melihat halaman beranda untuk pabrik data.
Ikuti instruksi dari Monitor set data dan alur untuk memantau alur dan himpunan data yang telah Anda buat dalam tutorial ini. Saat ini, Visual Studio tidak mendukung pemantauan alur Azure Data Factory.
Saat potongan berada dalam statusSiap, verifikasi bahwa data disalin ke tabel emp di Azure SQL Database.
Untuk informasi selengkapnya tentang cara menggunakan bilah portal Microsoft Azure untuk memantau alur dan himpunan data yang telah Anda buat dalam tutorial ini, lihatMemantau himpunan data dan alur.
Untuk informasi selengkapnya tentang cara menggunakan aplikasi Mengelola & Pemantauan untuk memantau alur data Anda, lihat Memantau dan mengelola saluran Azure Data Factory menggunakan Aplikasi Pemantauan.
Entitas Azure Data Factory dalam templat
Menentukan pabrik data
Anda menentukan pabrik data di templat Resource Manager seperti yang diperlihatkan dalam contoh berikut ini:
{
"resources": [
{
"name": "[variables('dataFactoryName')]",
"apiVersion": "2015-10-01",
"type": "Microsoft.DataFactory/datafactories",
"location": "West US"
}
]
}
DataFactoryName didefinisikan sebagai:
{
"dataFactoryName": "[concat('AzureBlobToAzureSQLDatabaseDF', uniqueString(resourceGroup().id))]"
}
Ini adalah string unik berdasarkan ID grup sumber daya.
Mendefinisikan entitas Data Factory
Entitas Azure Data Factory berikut didefinisikan dalam templat JSON:
- Layanan tertaut Microsoft Azure Storage
- Layanan tertaut Azure SQL
- Himpunan data blob Azure
- Himpunan data Azure SQL
- Alur data dengan aktivitas salin
Layanan tertaut Azure Storage
AzureStorageLinkedService menautkan akun penyimpanan Azure Anda ke pabrik data. Buat kontainer dan unggah data ke akun penyimpanan ini sebagai bagian dariprasyarat. Tentukan nama dan kunci akun penyimpanan Azure Anda di bagian ini. Lihat Layanan tertaut Microsoft Azure Storage untuk detail tentang properti JSON yang digunakan untuk menentukan layanan tertaut Microsoft Azure Storage.
{
"type": "linkedservices",
"name": "[variables('azureStorageLinkedServiceName')]",
"dependsOn": [
"[variables('dataFactoryName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureStorage",
"description": "Azure Storage linked service",
"typeProperties": {
"connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]"
}
}
}
ConnectionString menggunakan parameter storageAccountName dan storageAccountKey. Nilai untuk parameter ini dilewatkan menggunakan file konfigurasi. Definisi ini juga menggunakan variabel: azureStorageLinkedService dan dataFactoryName yang didefinisikan dalam templat.
Layanan tertaut Azure SQL Database
AzureSqlLinkedService menautkan Azure SQL Database ke pabrik data. Data yang disalin dari penyimpanan blob disimpan dalam database ini. Anda membuat tabel emp dalam database ini sebagai bagian dari prasyarat. Tentukan nama server SQL logis, nama database, nama pengguna, dan kata sandi pengguna di bagian ini. Lihat Layanan tertaut Azure SQL untuk detail tentang properti JSON yang digunakan untuk menentukan layanan tertaut Azure SQL.
{
"type": "linkedservices",
"name": "[variables('azureSqlLinkedServiceName')]",
"dependsOn": [
"[variables('dataFactoryName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureSqlDatabase",
"description": "Azure SQL linked service",
"typeProperties": {
"connectionString": "[concat('Server=tcp:',parameters('sqlServerName'),'.database.windows.net,1433;Database=', parameters('databaseName'), ';User ID=',parameters('sqlServerUserName'),';Password=',parameters('sqlServerPassword'),';Trusted_Connection=False;Encrypt=True;Connection Timeout=30')]"
}
}
}
ConnectionString menggunakan parameter sqlServerName, databaseName, sqlServerUserName, dan sqlServerPassword yang nilainya dilewatkan dengan menggunakan file konfigurasi. Definisi ini juga menggunakan variabel berikut dari template: azureSqlLinkedServiceName, dataFactoryName.
Himpunan data blob Azure
Layanan tertaut penyimpanan Azure menentukan string koneksi yang digunakan layanan Azure Data Factory pada durasi saat menyambungkan ke akun penyimpanan Azure Anda. Dalam definisi himpunan data blob Azure, Anda menentukan nama kontainer gumpalan, folder, dan file yang berisi data input. Lihat Properti himpunan data Azure Blob untuk detail tentang properti JSON yang digunakan untuk menentukan himpunan data Azure Blob.
{
"type": "datasets",
"name": "[variables('blobInputDatasetName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureStorageLinkedServiceName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureBlob",
"linkedServiceName": "[variables('azureStorageLinkedServiceName')]",
"structure": [
{
"name": "Column0",
"type": "String"
},
{
"name": "Column1",
"type": "String"
}
],
"typeProperties": {
"folderPath": "[concat(parameters('sourceBlobContainer'), '/')]",
"fileName": "[parameters('sourceBlobName')]",
"format": {
"type": "TextFormat",
"columnDelimiter": ","
}
},
"availability": {
"frequency": "Hour",
"interval": 1
},
"external": true
}
}
Himpunan data Azure SQL
Tentukan nama tabel di Azure SQL Database yang menyimpan data yang disalin dari penyimpanan Azure Blob. Lihat Properti himpunan data Azure SQL untuk detail tentang properti JSON yang digunakan untuk menentukan himpunan data Azure SQL.
{
"type": "datasets",
"name": "[variables('sqlOutputDatasetName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureSqlLinkedServiceName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"type": "AzureSqlTable",
"linkedServiceName": "[variables('azureSqlLinkedServiceName')]",
"structure": [
{
"name": "FirstName",
"type": "String"
},
{
"name": "LastName",
"type": "String"
}
],
"typeProperties": {
"tableName": "[parameters('targetSQLTable')]"
},
"availability": {
"frequency": "Hour",
"interval": 1
}
}
}
Gunakan alur data
Tentukan alur yang menyalin data dari himpunan data blob Azure ke himpunan data Azure SQL. Lihat Alur JSON untuk deskripsi elemen JSON yang digunakan untuk menentukan alur dalam contoh ini.
{
"type": "datapipelines",
"name": "[variables('pipelineName')]",
"dependsOn": [
"[variables('dataFactoryName')]",
"[variables('azureStorageLinkedServiceName')]",
"[variables('azureSqlLinkedServiceName')]",
"[variables('blobInputDatasetName')]",
"[variables('sqlOutputDatasetName')]"
],
"apiVersion": "2015-10-01",
"properties": {
"activities": [
{
"name": "CopyFromAzureBlobToAzureSQL",
"description": "Copy data frm Azure blob to Azure SQL",
"type": "Copy",
"inputs": [
{
"name": "[variables('blobInputDatasetName')]"
}
],
"outputs": [
{
"name": "[variables('sqlOutputDatasetName')]"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"sqlWriterCleanupScript": "$$Text.Format('DELETE FROM {0}', 'emp')"
},
"translator": {
"type": "TabularTranslator",
"columnMappings": "Column0:FirstName,Column1:LastName"
}
},
"Policy": {
"concurrency": 1,
"executionPriorityOrder": "NewestFirst",
"retry": 3,
"timeout": "01:00:00"
}
}
],
"start": "2017-05-11T00:00:00Z",
"end": "2017-05-12T00:00:00Z"
}
}
Menggunakan kembali templat
Dalam tutorial, buat templat untuk mendefinisikan entitas Azure Data Factory dan templat untuk melewati nilai untuk parameter. Alur menyalin data dari akun Azure Storage ke Azure SQL Database ditentukan melalui parameter. Untuk menggunakan templat yang sama untuk menggunakan entitas Azure Data Factory ke lingkungan yang berbeda, Anda membuat file parameter untuk setiap lingkungan dan menggunakannya saat menyebarkan ke lingkungan tersebut.
Contoh:
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Dev.json
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Test.json
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Production.json
Perhatikan bahwa perintah pertama menggunakan file parameter untuk lingkungan pengembangan, yang kedua untuk lingkungan pengujian, dan yang ketiga untuk lingkungan produksi.
Anda juga bisa menggunakan kembali templat untuk melakukan tugas berulang. Misalnya, Anda perlu membuat banyak pabrik data dengan satu atau beberapa alur yang menerapkan logika yang sama tetapi setiap pabrik data menggunakan akun Storage dan SQL Database yang berbeda. Dalam skenario ini, gunakan templat yang sama di lingkungan yang sama (dev, test, atau production) dengan file parameter yang berbeda untuk membuat pabrik data.
Langkah berikutnya
Dalam tutorial ini, Anda menggunakan penyimpanan blob Azure sebagai penyimpanan data sumber dan Azure SQL Database sebagai penyimpanan data tujuan dalam operasi salinan. Tabel berikut ini menyediakan daftar penyimpanan data yang didukung sebagai sumber dan tujuan oleh aktivitas salin:
| Kategori | Penyimpanan data | Didukung sebagai sumber | Didukung sebagai sink |
|---|---|---|---|
| Azure | Azure Blob Storage | ✓ | ✓ |
| Azure Cosmos DB (SQL API) | ✓ | ✓ | |
| Azure Data Lake Storage Gen1 | ✓ | ✓ | |
| Azure SQL Database | ✓ | ✓ | |
| Azure Synapse Analytics | ✓ | ✓ | |
| Indeks Azure Cognitive Search | ✓ | ||
| Penyimpanan Tabel Azure | ✓ | ✓ | |
| Database | Amazon Redshift | ✓ | |
| DB2* | ✓ | ||
| MySQL* | ✓ | ||
| Oracle* | ✓ | ✓ | |
| PostgreSQL* | ✓ | ||
| SAP Business Warehouse* | ✓ | ||
| SAP HANA* | ✓ | ||
| SQL Server* | ✓ | ✓ | |
| Sybase* | ✓ | ||
| Teradata* | ✓ | ||
| NoSQL | Cassandra* | ✓ | |
| MongoDB* | ✓ | ||
| File | Amazon S3 | ✓ | |
| Sistem File* | ✓ | ✓ | |
| FTP | ✓ | ||
| HDFS* | ✓ | ||
| SFTP | ✓ | ||
| Lainnya | HTTP Generik | ✓ | |
| OData Generik | ✓ | ||
| ODBC Generik* | ✓ | ||
| Salesforce | ✓ | ||
| Tabel Web (tabel dari HTML) | ✓ |
Untuk mempelajari tentang cara menyalin data ke/dari penyimpanan data, klik tautan untuk penyimpanan data dalam tabel.