Alur dan aktivitas di Azure Data Factory dan Azure 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!
Penting
Dukungan untuk Azure Pembelajaran Mesin Studio (klasik) akan berakhir pada 31 Agustus 2024. Kami menyarankan agar Anda beralih ke Azure Pembelajaran Mesin pada tanggal tersebut.
Mulai 1 Desember 2021, Anda tidak dapat membuat sumber daya Pembelajaran Mesin Studio (klasik) baru (ruang kerja dan paket layanan web). Hingga 31 Agustus 2024, Anda dapat terus menggunakan eksperimen dan layanan web Pembelajaran Mesin Studio (klasik) yang ada. Untuk informasi selengkapnya, lihat:
- Bermigrasi ke Azure Pembelajaran Mesin dari Pembelajaran Mesin Studio (klasik)
- Apa itu Azure Pembelajaran Mesin?
dokumentasi Pembelajaran Mesin Studio (klasik) sedang dihentikan dan mungkin tidak diperbarui di masa mendatang.
Artikel ini membantu Anda memahami alur dan aktivitas di Azure Data Factory dan Azure Synapse Analytics serta menggunakannya untuk menyusun alur kerja berbasis data menyeluruh untuk pergerakan data dan skenario pemrosesan data Anda.
Gambaran Umum
Data Factory atau Synapse Workspace dapat memiliki satu alur atau lebih. Alur adalah pengelompokan aktivitas logis yang bersama-sama melakukan tugas. Misalnya, alur dapat berisi kumpulan aktivitas yang menyerap dan membersihkan data log, lalu memulai aliran data pemetaan untuk menganalisis data log. Alur memungkinkan Anda mengelola aktivitas sebagai satu kumpulan, bukan masing-masing secara individual. Anda menyebarkan dan menjadwalkan alur alih-alih aktivitas secara mandiri.
Aktivitas dalam alur menentukan tindakan yang harus dilakukan pada data Anda. Misalnya, Anda dapat menggunakan aktivitas salin untuk menyalin data dari SQL Server ke Azure Blob Storage. Kemudian, gunakan aktivitas aliran data atau aktivitas Databricks Notebook untuk memproses dan mengubah data dari penyimpanan blob ke kumpulan Azure Synapse Analytics di atas solusi pelaporan kecerdasan bisnis yang dibangun.
Azure Data Factory dan Azure Synapse Analytics memiliki tiga pengelompokan aktivitas: aktivitas pergerakan data, aktivitas transformasi data, dan aktivitas kontrol. Suatu aktivitas dapat mengambil nol atau lebih himpunan data input dan menghasilkan satu atau lebih himpunan data output. Diagram berikut ini menunjukkan hubungan antara alur, aktivitas, dan himpunan data:
Himpunan data input merepresentasikan input untuk aktivitas di alur, dan himpunan data output merepresentasikan output untuk aktivitas tersebut. Himpunan data mengidentifikasi data dalam penyimpanan data yang berbeda, seperti tabel, file, folder, dan dokumen. Setelah membuat himpunan data, Anda dapat menggunakannya dengan aktivitas dalam alur. Misalnya, himpunan data dapat berupa himpunan data input/output dari Aktivitas Penyalinan atau Aktivitas HDInsightHive. Untuk informasi selengkapnya tentang himpunan data, lihat artikel Himpunan data di Azure Data Factory.
Catatan
Ada batas lunak default dari maksimum 80 aktivitas per alur, yang mencakup aktivitas dalam untuk kontainer.
Aktivitas pergerakan data
Salin Aktivitas di Pabrik Data menyalin data dari penyimpanan data sumber ke penyimpanan data wastafel. Data Factory mendukung penyimpanan data yang tercantum dalam tabel di bagian ini. Data dari sumber mana pun dapat ditulis ke sink mana pun.
Untuk informasi selengkapnya, lihat artikel Aktivitas Penyalinan - Gambaran Umum.
Pilih penyimpanan data untuk mempelajari cara menyalin data ke dan dari penyimpanan tersebut.
Catatan
Jika konektor ditandai sebagai Pratinjau, Anda dapat mencobanya dan memberi kami umpan balik. Jika Anda ingin bergantung pada konektor pratinjau dalam solusi Anda, hubungi dukungan Azure.
Aktivitas transformasi data
Azure Data Factory dan Azure Synapse Analytics mendukung aktivitas transformasi berikut yang dapat ditambahkan baik secara individual atau dirangkai dengan aktivitas lain.
Untuk informasi selengkapnya, lihat artikel aktivitas transformasi data.
Aktivitas transformasi data | Lingkungan komputasi |
---|---|
Aliran Data | Kluster Apache Spark yang dikelola oleh Azure Data Factory |
Fungsi Azure | Azure Functions |
Hive | HDInsight [Hadoop] |
Babi | HDInsight [Hadoop] |
MapReduce | HDInsight [Hadoop] |
Hadoop Streaming | HDInsight [Hadoop] |
Spark | HDInsight [Hadoop] |
ML Studio (classic) activities: Batch Execution dan Update Resource | Azure VM |
Prosedur Tersimpan | Azure SQL, Azure Synapse Analytics, atau SQL Server |
U-SQL | Azure Data Lake Analytics |
Aktivitas Kustom | Azure Batch |
Buku Catatan Databricks | Azure Databricks |
Aktivitas Databricks Jar | Azure Databricks |
Aktivitas Databricks Python | Azure Databricks |
Aktivitas Synapse Notebook | Azure Synapse Analytics |
Aktivitas alur kontrol
Aktivitas alur kontrol berikut didukung:
Aktivitas kontrol | Deskripsi |
---|---|
Tambahkan Variabel | Menambahkan nilai ke variabel array yang sudah ada. |
Jalankan Alur | Aktivitas Jalankan Alur memungkinkan alur Data Factory atau Synapse untuk memanggil alur lain. |
Filter | Menerapkan ekspresi filter ke array input |
Untuk Masing-masing | Aktivitas ForEach menentukan alur kontrol berulang di alur Anda. Aktivitas ini digunakan untuk mengulangi koleksi dan menjalankan aktivitas tertentu dalam perulangan. Implementasi perulangan dari aktivitas ini mirip dengan struktur perulangan Foreach dalam bahasa pemrograman. |
Dapatkan Metadata | Aktivitas GetMetadata dapat digunakan untuk mengambil metadata data apa pun di alur Data Factory atau Synapse. |
Aktivitas Kondisi Jika | Kondisi Jika dapat digunakan untuk melakukan percabangan berdasarkan kondisi yang bernilai true atau false. Aktivitas If Condition menyediakan fungsionalitas yang sama dengan yang diberikan oleh pernyataan if dalam bahasa pemrogram. Aktivitas ini mengevaluasi kumpulan aktivitas saat kondisi tersebut mengevaluasi ke true dan satu kumpulan aktivitas lain saat kondisi mengevaluasi ke false. |
Aktivitas Pencarian | Aktivitas Pencarian dapat digunakan untuk membaca atau mencari rekaman/nama tabel/nilai dari sumber eksternal apa pun. Output ini selanjutnya dapat dirujuk sebagai aktivitas yang berhasil. |
Atur Variabel | Mengatur nilai variabel yang ada. |
Aktivitas Hingga | Mengimplementasikan perulangan Lakukan-Hingga yang mirip dengan struktur perulangan Lakukan-Hingga dalam bahasa komputer. Ini menjalankan kumpulan aktivitas dalam perulangan hingga kondisi yang terkait dengan aktivitas tersebut bernilai true. Anda dapat menentukan nilai batas waktu untuk aktivitas hingga. |
Aktivitas Validasi | Pastikan alur hanya melanjutkan eksekusi jika ada himpunan data referensi, memenuhi kriteria yang ditentukan, atau batas waktu telah tercapai. |
Aktivitas Tunggu | Saat Anda menggunakan aktivitas Tunggu di alur, alur menunggu waktu yang ditentukan sebelum melanjutkan dengan eksekusi aktivitas berikutnya. |
Aktivitas Web | Aktivitas Web dapat digunakan untuk memanggil titik akhir REST kustom dari alur. Anda dapat meneruskan himpunan data dan layanan tertaut untuk dipakai dan diakses oleh aktivitas. |
Aktivitas Webhook | Menggunakan aktivitas webhook, memanggil titik akhir, dan meneruskan URL panggilan balik. Eksekusi alur menunggu panggilan balik digunakan sebelum melanjutkan ke aktivitas berikutnya. |
Membuat alur dengan antarmuka pengguna
Untuk membuat alur baru, navigasikan ke tab Pembuat di Studio Data Factory (ditunjukkan dengan ikon pensil), lalu klik tanda plus dan pilih Alur dari menu, dan Alur lagi dari submenu.
Pabrik data akan menampilkan penyunting alur tempat Anda dapat menemukan:
- Semua aktivitas yang dapat digunakan di dalam alur.
- Kanvas penyunting alur, tempat aktivitas akan muncul saat ditambahkan ke alur.
- Panel konfigurasi alur, termasuk parameter, variabel, pengaturan umum, dan output.
- Panel properti alur, tempat nama alur, deskripsi opsional, dan anotasi dapat dikonfigurasi. Panel ini juga akan menampilkan item terkait ke alur di dalam pabrik data.
JSON Alur
Berikut adalah bagaimana alur didefinisikan dalam format JSON:
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities":
[
],
"parameters": {
},
"concurrency": <your max pipeline concurrency>,
"annotations": [
]
}
}
Tag | Deskripsi | Jenis | Wajib |
---|---|---|---|
nama | Nama alur. Tentukan nama yang mewakili tindakan yang dilakukan alur.
|
String | Ya |
description | Tentukan teks yang menjelaskan untuk apa alur tersebut digunakan. | String | No |
aktivitas | Bagian aktivitas dapat memiliki satu atau beberapa aktivitas yang ditentukan di dalamnya. Lihat bagian JSON Aktivitas untuk detail tentang aktivitas elemen JSON. | Array | Ya |
parameter | Bagian parameter dapat memiliki satu atau beberapa parameter yang ditentukan dalam alur, membuat alur Anda fleksibel untuk digunakan kembali. | List | No |
konkurensi | Jumlah maksimum menjalankan bersamaan yang dapat dimiliki alur. Secara default, tidak ada jumlah maksimum. Jika batas konkurensi tercapai, eksekusi alur tambahan akan diantrekan hingga yang sebelumnya selesai | Number | No |
anotasi | Daftar tag yang terkait dengan alur | Array | No |
JSON Aktivitas
Bagian aktivitas dapat memiliki satu atau beberapa aktivitas yang ditentukan di dalamnya. Ada dua jenis aktivitas utama: Aktivitas Eksekusi dan Kontrol.
Aktivitas eksekusi
Aktivitas eksekusi meliputi aktivitas pergerakan data dan transformasi data. Aktivitas tersebut memiliki struktur tingkat atas berikut:
{
"name": "Execution Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"linkedServiceName": "MyLinkedService",
"policy":
{
},
"dependsOn":
{
}
}
Tabel berikut ini menjelaskan properti dalam aktivitas definisi JSON:
Tag | Deskripsi | Wajib |
---|---|---|
nama | Nama aktivitas. Tentukan nama yang mewakili tindakan yang dilakukan aktivitas.
|
Ya |
description | Teks yang menjelaskan aktivitas atau kegunaannya | Ya |
jenis | Jenis aktivitas. Lihat bagian Aktivitas Pergerakan Data, Aktivitas Transformasi Data, dan Aktivitas Kontrol untuk berbagai jenis aktivitas. | Ya |
linkedServiceName | Nama layanan tertaut yang digunakan oleh aktivitas. Aktivitas mungkin mengharuskan Anda menentukan layanan tertaut yang ditautkan ke lingkungan komputasi yang diperlukan. |
Ya untuk HDInsight Activity, ML Studio (classic) Batch Scoring Activity, Stored Procedure Activity. Tidak untuk yang lainnya |
typeProperties | Properti di bagian typeProperties bergantung pada setiap jenis aktivitas. Untuk melihat jenis properti untuk aktivitas, klik tautan ke aktivitas di bagian sebelumnya. | No |
kebijakan | Kebijakan yang memengaruhi perilaku run-time aktivitas. Properti ini mencakup perilaku batas waktu dan coba lagi. Jika tidak ditentukan, nilai default akan digunakan. Untuk informasi selengkapnya, lihat bagian Kebijakan aktivitas. | No |
dependsOn | Properti ini digunakan untuk menentukan dependensi aktivitas, dan bagaimana aktivitas berikutnya bergantung pada aktivitas sebelumnya. Untuk informasi selengkapnya, lihat Dependensi aktivitas | No |
Kebijakan aktivitas
Kebijakan memengaruhi perilaku run-time aktivitas, memberikan opsi konfigurasi. Kebijakan Aktivitas hanya tersedia untuk aktivitas eksekusi.
Definisi JSON kebijakan aktivitas
{
"name": "MyPipelineName",
"properties": {
"activities": [
{
"name": "MyCopyBlobtoSqlActivity",
"type": "Copy",
"typeProperties": {
...
},
"policy": {
"timeout": "00:10:00",
"retry": 1,
"retryIntervalInSeconds": 60,
"secureOutput": true
}
}
],
"parameters": {
...
}
}
}
Nama JSON | Deskripsi | Nilai yang diizinkan | Wajib |
---|---|---|---|
waktu habis | Menentukan batas waktu untuk menjalankan aktivitas. | Rentang waktu | Tidak. Batas waktu default adalah 12 jam, minimal 10 menit. |
coba lagi | Upaya coba lagi maksimum | Bilangan bulat | Tidak. Defaultnya adalah 0 |
retryIntervalInSeconds | Penundaan antara upaya coba lagi dalam hitungan detik | Bilangan bulat | Tidak. Defaultnya adalah 30 detik |
secureOutput | Bila diatur ke true, output dari aktivitas dianggap aman dan tidak dicatat untuk pemantauan. | Boolean | Tidak. Defaultnya adalah false. |
Aktivitas kontrol
Aktivitas kontrol memiliki struktur tingkat atas berikut:
{
"name": "Control Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"dependsOn":
{
}
}
Tag | Deskripsi | Wajib |
---|---|---|
nama | Nama aktivitas. Tentukan nama yang mewakili tindakan yang dilakukan aktivitas.
|
Ya |
description | Teks yang menjelaskan aktivitas atau kegunaannya | Ya |
jenis | Jenis aktivitas. Lihat bagian aktivitas pergerakan data, aktivitas transformasi data, dan aktivitas kontrol untuk berbagai jenis aktivitas. | Ya |
typeProperties | Properti di bagian typeProperties bergantung pada setiap jenis aktivitas. Untuk melihat jenis properti untuk aktivitas, klik tautan ke aktivitas di bagian sebelumnya. | No |
dependsOn | Properti ini digunakan untuk menentukan Dependensi Aktivitas, dan bagaimana aktivitas berikutnya bergantung pada aktivitas sebelumnya. Untuk informasi selengkapnya, lihat dependensi aktivitas. | No |
Dependensi aktivitas
Dependensi Aktivitas menentukan bagaimana aktivitas berikutnya bergantung pada aktivitas sebelumnya, menentukan kondisi apakah akan melanjutkan pelaksanaan tugas berikutnya. Aktivitas dapat bergantung pada satu atau beberapa aktivitas sebelumnya dengan kondisi dependensi yang berbeda.
Kondisi dependensi yang berbeda adalah: Berhasil, Gagal, Dilompati, Selesai.
Misalnya, jika alur memiliki Aktivitas A -> Aktivitas B, skenario berbeda yang dapat terjadi adalah:
- Aktivitas B memiliki kondisi dependensi pada Aktivitas A dengan berhasil: Aktivitas B hanya berjalan jika Aktivitas A memiliki status akhir berhasil
- Aktivitas B memiliki kondisi dependensi pada Aktivitas A dengan gagal: Aktivitas B hanya berjalan jika Aktivitas A memiliki status akhir gagal
- Aktivitas B memiliki kondisi dependensi pada Aktivitas A dengan selesai: Aktivitas B berjalan jika Aktivitas A memiliki status akhir berhasil atau gagal
- Aktivitas B memiliki kondisi dependensi pada Aktivitas A dengan dilompati: Aktivitas B berjalan jika Aktivitas A memiliki status akhir dilompati. Dilewati terjadi dalam skenario Aktivitas X -> Aktivitas Y -> Aktivitas Z, saat setiap aktivitas hanya berjalan jika aktivitas sebelumnya berhasil. Jika Aktivitas X gagal, Activity Y memiliki status "Dilompati" karena tidak pernah dijalankan. Demikian pula, Activity Z juga berstatus "Dilompati".
Contoh: Aktivitas 2 tergantung pada Aktivitas 1 yang berhasil
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities": [
{
"name": "MyFirstActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
}
},
{
"name": "MySecondActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
},
"dependsOn": [
{
"activity": "MyFirstActivity",
"dependencyConditions": [
"Succeeded"
]
}
]
}
],
"parameters": {
}
}
}
Contoh alur salin
Dalam contoh alur berikut, ada satu aktivitas jenis Copy di bagian aktivitas. Dalam contoh ini, aktivitas penyalinan menyalin data dari penyimpanan Azure Blob ke database di Azure SQL Database.
{
"name": "CopyPipeline",
"properties": {
"description": "Copy data from a blob to Azure SQL table",
"activities": [
{
"name": "CopyFromBlobToSQL",
"type": "Copy",
"inputs": [
{
"name": "InputDataset"
}
],
"outputs": [
{
"name": "OutputDataset"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 10000,
"writeBatchTimeout": "60:00:00"
}
},
"policy": {
"retry": 2,
"timeout": "01:00:00"
}
}
]
}
}
Perhatikan poin berikut:
- Di bagian aktivitas, hanya ada satu aktivitas yang jenisnya diatur ke Salin.
- Input untuk aktivitas diatur ke InputDataset dan output untuk aktivitas diatur ke OutputDataset. Lihat artikel himpunan data untuk menentukan himpunan data di JSON.
- Di bagian typeProperties, BlobSource ditentukan sebagai tipe sumber dan SqlSink ditentukan sebagai tipe wastafel. Di bagian Aktivitas pergerakan data, klik penyimpanan data yang ingin Anda gunakan sebagai sumber atau sink untuk mempelajari lebih lanjut tentang memindahkan data ke/dari penyimpanan data tersebut.
Untuk panduan lengkap membuat alur ini, lihat Mulai Cepat: membuat Data Factory.
Contoh alur transformasi
Pada contoh alur berikut, ada satu aktivitas jenis HDInsightHive di bagian kegiatan. Dalam contoh ini, aktivitas HDInsight Apache Hive mengubah data dari penyimpanan Azure Blob dengan menjalankan file skrip Apache Hive di kluster Azure HDInsight Hadoop.
{
"name": "TransformPipeline",
"properties": {
"description": "My first Azure Data Factory pipeline",
"activities": [
{
"type": "HDInsightHive",
"typeProperties": {
"scriptPath": "adfgetstarted/script/partitionweblogs.hql",
"scriptLinkedService": "AzureStorageLinkedService",
"defines": {
"inputtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/inputdata",
"partitionedtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/partitioneddata"
}
},
"inputs": [
{
"name": "AzureBlobInput"
}
],
"outputs": [
{
"name": "AzureBlobOutput"
}
],
"policy": {
"retry": 3
},
"name": "RunSampleHiveActivity",
"linkedServiceName": "HDInsightOnDemandLinkedService"
}
]
}
}
Perhatikan poin berikut:
- Di bagian aktivitas, hanya ada satu aktivitas yang jenisnya diatur ke HDInsightHive.
- File skrip Apache Hive, partitionweblogs.hql, disimpan di akun Azure Storage (ditentukan oleh scriptLinkedService, yang disebut AzureStorageLinkedService), dan dalam folder skrip dalam kontainer
adfgetstarted
. - Bagian
defines
ini digunakan untuk menentukan pengaturan runtime yang diteruskan ke skrip hive sebagai nilai konfigurasi Apache Hive (misalnya, ${hiveconf:inputtable}
,${hiveconf:partitionedtable}
).
Bagian typeProperties berbeda untuk setiap aktivitas transformasi. Untuk mempelajari tentang jenis properti yang didukung untuk aktivitas transformasi, klik aktivitas transformasi dalam Aktivitas transformasi data.
Untuk panduan lengkap membuat alur ini, lihat Tutorial: mengubah data menggunakan Spark.
Beberapa aktivitas dalam alur
Dua alur sampel sebelumnya hanya memiliki satu aktivitas di dalamnya. Anda dapat memiliki lebih dari satu aktivitas dalam alur. Jika Anda memiliki beberapa aktivitas dalam alur dan aktivitas berikutnya tidak bergantung pada aktivitas sebelumnya, aktivitas mungkin berjalan secara paralel.
Anda dapat menghubungkan dua aktivitas menggunakan dependensi aktivitas, yang menentukan bagaimana aktivitas selanjutnya bergantung pada aktivitas sebelumnya, yang menentukan kondisi apakah akan melanjutkan eksekusi tugas berikutnya. Aktivitas dapat bergantung pada satu atau beberapa aktivitas sebelumnya dengan kondisi dependensi yang berbeda.
Menjadwalkan alur
Alur dijadwalkan oleh pemicu. Ada berbagai jenis pemicu (pemicu Microsoft Azure Scheduler, yang memungkinkan alur dipicu pada jadwal jam dinding, serta pemicu manual, yang memicu alur sesuai permintaan). Untuk informasi selengkapnya tentang pemicu, lihat artikel pemicu dan eksekusi alur.
Agar pemicu Anda memulai eksekusi alur, Anda harus menyertakan referensi alur dari alur tertentu dalam definisi pemicu. Alur & pemicu memiliki hubungan n-m. Beberapa pemicu dapat memulai satu alur, dan pemicu yang sama dapat memulai beberapa alur. Setelah pemicu ditentukan, Anda harus memulai pemicu agar pemicu mulai memicu alur. Untuk informasi selengkapnya tentang pemicu, lihat artikel pemicu dan eksekusi alur.
Misalnya, Anda memiliki pemicu Penjadwal, "Pemicu A", yang ingin saya mulai dari alur saya, "MyCopyPipeline." Anda menentukan pemicu, seperti yang ditunjukkan dalam contoh berikut:
Definisi Pemicu A
{
"name": "TriggerA",
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
...
}
},
"pipeline": {
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "MyCopyPipeline"
},
"parameters": {
"copySourceName": "FileSource"
}
}
}
}