Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk / Saran
Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.
Penting
Dukungan untuk Azure Studio Pembelajaran Mesin (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda beralih ke Azure Machine Learning pada tanggal tersebut.
Mulai 1 Desember 2021, Anda tidak dapat membuat sumber daya Studio Pembelajaran Mesin (klasik) baru (ruang kerja dan paket layanan web). Hingga 31 Agustus 2024, Anda dapat terus menggunakan eksperimen dan layanan web Studio Pembelajaran Mesin (klasik) yang ada. Untuk informasi selengkapnya, lihat:
- Migrasi ke Azure Machine Learning dari Studio Pembelajaran Mesin (klasik)
- Apa itu Azure Machine Learning?
dokumentasi Studio Pembelajaran Mesin (klasik) sedang dihentikan dan mungkin tidak diperbarui di masa mendatang.
Artikel ini membantu Anda memahami alur dan aktivitas dalam Azure Data Factory dan Azure Synapse Analytics dan menggunakannya untuk membangun alur kerja berbasis data end-to-end untuk skenario pergerakan data dan 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 yang digunakan untuk membangun solusi pelaporan kecerdasan bisnis.
Azure Data Factory dan Azure Synapse Analytics memiliki tiga pengelompokan aktivitas: aktivitas gerakan 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 Datasets di Azure Data Factory.
Catatan
Ada batas lunak default maksimum 120 aktivitas per penjaluran, yang mencakup aktivitas internal untuk kontainer.
Aktivitas pergerakan data
Aktivitas Menyalin di Data Factory menyalin data dari penyimpanan data sumber ke penyimpanan data tujuan. 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 data tersebut.
Catatan
Jika konektor ditandai sebagai Pratinjau, Anda dapat mencobanya dan memberi kami umpan balik. Jika Anda ingin mengandalkan 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 ditautkan dengan aktivitas lain.
Untuk informasi selengkapnya, lihat artikel aktivitas transformasi data.
| Aktivitas transformasi data | Lingkungan komputasi |
|---|---|
| Data Flow | Kluster Apache Spark 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] |
| Kegiatan ML Studio (klasik): Eksekusi Batch dan Perbarui Sumber Daya | VM Azure |
| Prosedur Tersimpan | Azure SQL, Azure Synapse Analytics, atau SQL Server |
| Aktivitas Khusus | Azure Batch |
| Buku Catatan Databricks | Azure Databricks |
| Aktivitas Databricks Jar | Azure Databricks |
| Aktivitas Python Databricks | 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 Kerja | Aktivitas Jalankan Alur memungkinkan alur Data Factory atau Synapse untuk memanggil alur lain. |
| Saringan | Menerapkan ekspresi filter ke array input |
| Untuk Masing-masing | Aktivitas ForEach menentukan alur kontrol berulang di alur Anda. Aktivitas ini digunakan untuk mengiterasi suatu koleksi dan mengeksekusi aktivitas tertentu secara berulang. 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 If dapat digunakan untuk melakukan percabangan berdasarkan kondisi yang bernilai benar atau salah. Aktivitas If Condition menyediakan fungsionalitas yang sama dengan yang diberikan oleh pernyataan if dalam bahasa pemrogram. Evaluasi dilakukan terhadap satu kumpulan aktivitas saat kondisi tersebut bernilai true dan kumpulan aktivitas lainnya saat kondisi bernilai 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 oleh aktivitas berikutnya. |
| Atur Variabel | Mengatur nilai variabel yang ada. |
| Aktivitas Hingga | Mengimplementasikan perulangan Do-Until yang mirip dengan struktur perulangan Do-Until dalam bahasa pemrograman. Ini menjalankan kumpulan aktivitas berulang hingga kondisi pada aktivitas tersebut bernilai benar. Anda dapat menentukan nilai waktu habis untuk aktivitas until. |
| Aktivitas Validasi | Pastikan alur hanya melanjutkan eksekusi jika himpunan data referensi ada, memenuhi kriteria tertentu, atau waktu habis 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 tersebut. |
| Aktivitas Webhook | Menggunakan aktivitas webhook, memanggil titik akhir, dan meneruskan URL panggilan balik. Eksekusi pipeline menunggu hingga fungsi callback dipanggil sebelum melanjutkan ke aktivitas berikutnya. |
Membuat alur dengan antarmuka pengguna
Untuk membuat pipeline baru, navigasikan ke tab Penulis di Data Factory Studio (diwakili oleh ikon pensil), lalu pilih tanda plus dan pilih Pipeline dari menu, kemudian pilih Pipeline lagi dari submenu.
Pabrik data menampilkan editor alur tempat Anda dapat menemukan:
- Semua aktivitas yang dapat digunakan dalam pipeline.
- Kanvas editor pipeline, tempat aktivitas muncul saat ditambahkan ke dalam pipeline.
- 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 menampilkan item yang terkait dengan alur kerja dalam factory data.
Pipa JSON
Berikut adalah bagaimana alur didefinisikan dalam format JSON:
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities":
[
],
"parameters": {
},
"concurrency": <your max pipeline concurrency>,
"annotations": [
]
}
}
| Etiket | Deskripsi | Jenis | Wajib |
|---|---|---|---|
| nama | Nama alur. Tentukan nama yang mewakili tindakan yang dilakukan saluran pipeline.
|
string | Ya |
| Deskripsi | Tentukan teks yang menjelaskan untuk apa alur tersebut digunakan. | string | Tidak. |
| 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. | Daftar | Tidak. |
| keserempakan | Jumlah maksimum perulangan bersamaan yang dapat dimiliki oleh pipeline. Secara default, tidak ada maksimum. Jika batas konkurensi tercapai, jalan alur tambahan diantrekan hingga jalan alur sebelumnya selesai. | Angka | Tidak. |
| anotasi | Daftar tag yang terkait dengan alur | Array | Tidak. |
Aktivitas JSON
Bagian aktivitas dapat memiliki satu atau beberapa aktivitas yang ditentukan di dalamnya. Ada dua jenis aktivitas utama: Aktivitas Eksekusi dan Kontrol.
Aktivitas pelaksanaan
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:
| Etiket | Deskripsi | Wajib |
|---|---|---|
| nama | Nama aktivitas. Tentukan nama yang mewakili tindakan yang dilakukan aktivitas.
|
Ya |
| Deskripsi | 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 |
| NamaLayananTerkait | 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 |
| tipeProperti | Properti di bagian typeProperties bergantung pada setiap jenis aktivitas. Untuk melihat properti jenis untuk aktivitas, pilih tautan ke aktivitas di bagian sebelumnya. | Tidak. |
| kebijakan | Kebijakan yang memengaruhi perilaku run-time aktivitas. Properti ini mencakup perilaku batas waktu dan pengulangan. Jika tidak ditentukan, nilai default akan digunakan. Untuk informasi selengkapnya, lihat bagian Kebijakan aktivitas. | Tidak. |
| bergantung pada | Properti ini digunakan untuk menentukan dependensi aktivitas, dan bagaimana aktivitas berikutnya bergantung pada aktivitas sebelumnya. Untuk informasi selengkapnya, lihat Dependensi aktivitas | Tidak. |
Kebijakan aktivitas
Kebijakan memengaruhi perilaku saat berjalan dari suatu aktivitas, menyediakan 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 |
|---|---|---|---|
| batas waktu | Menentukan batas waktu untuk menjalankan aktivitas. | Rentang waktu | Tidak. Batas waktu default adalah 12 jam, minimal 10 menit. |
| coba lagi | Batas maksimum upaya pengulangan | Bilangan bulat | Tidak. Defaultnya adalah 0 |
| intervalUlangDalamDetik | Penundaan antara upaya coba lagi dalam hitungan detik | Bilangan bulat | Tidak. Pengaturan bawaan adalah 30 detik |
| Keluaran aman | Bila diatur ke true, output dari aktivitas dianggap aman dan tidak dicatat untuk pemantauan. | Boolean | Tidak. Pengaturan bawaan adalah false. |
Aktivitas kontrol
Aktivitas kontrol memiliki struktur tingkat atas berikut:
{
"name": "Control Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"dependsOn":
{
}
}
| Etiket | Deskripsi | Wajib |
|---|---|---|
| nama | Nama aktivitas. Tentukan nama yang mewakili tindakan yang dilakukan aktivitas.
|
Ya |
| Deskripsi | 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 |
| tipeProperti | Properti di bagian typeProperties bergantung pada setiap jenis aktivitas. Untuk melihat properti jenis untuk aktivitas, pilih tautan ke aktivitas di bagian sebelumnya. | Tidak. |
| bergantung pada | Properti ini digunakan untuk menentukan Dependensi Aktivitas, dan bagaimana aktivitas berikutnya bergantung pada aktivitas sebelumnya. Untuk informasi selengkapnya, lihat dependensi aktivitas. | Tidak. |
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 ketergantungan pada Aktivitas A dengan status dilompati: Aktivitas B akan 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, Aktivitas Z juga berstatus "Dilewatkan".
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 jalur kerja
Dalam pipeline sampel berikut, ada satu aktivitas jenis Salin di bagian aktivitas. Dalam sampel ini, aktivitas copy menyalin data dari penyimpanan Blob Azure 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, 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, pilih penyimpanan data yang ingin Anda gunakan sebagai sumber atau sink untuk mempelajari selengkapnya tentang memindahkan data ke/dari penyimpanan data tersebut.
Untuk panduan lengkap membuat alur ini, lihat Mulai Cepat: membuat Data Factory.
Contoh alur transformasi
Dalam alur sampel berikut, ada satu aktivitas jenis HDInsightHive di bagian aktivitas . Dalam sampel ini, aktivitas Apache Hive HDInsight mengubah data dari penyimpanan Blob Azure dengan menjalankan file skrip Apache Hive pada 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
definesini 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 properti jenis yang didukung untuk aktivitas transformasi, pilih aktivitas transformasi dalam aktivitas Transformasi data.
Untuk panduan lengkap membuat alur ini, lihat Tutorial: mengubah data menggunakan Spark.
Beberapa aktivitas dalam aliran kerja
Dua alur sampel sebelumnya hanya memiliki satu aktivitas di dalamnya. Anda dapat memiliki lebih dari satu aktivitas dalam pipeline. 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 aliran kerja
Alur dijadwalkan oleh pemicu. Ada berbagai jenis pemicu (Pemicu Scheduler, yang memungkinkan alur dipicu pada jadwal jam dinding, dan pemicu manual, yang memicu alur sesuai permintaan). Untuk informasi selengkapnya tentang pemicu, lihat artikel eksekusi alur dan pemicu.
Untuk menjalankan alur dari pemicu Anda, 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 eksekusi alur dan pemicu.
Misalnya, Anda memiliki pemicu Penjadwal, "Pemicu A", yang ingin saya gunakan untuk memulai 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"
}
}
}
}