Menggunakan aktivitas perintah Azure Data Factory untuk menjalankan perintah manajemen Azure Data Explorer
Azure Data Factory (ADF) adalah layanan integrasi data berbasis cloud yang memungkinkan Anda melakukan kombinasi aktivitas pada data. Gunakan ADF untuk membuat alur kerja berbasis data untuk mengatur dan mengotomatiskan pergerakan data dan transformasi data. Aktivitas Perintah Azure Data Explorer di Azure Data Factory memungkinkan Anda menjalankan perintah manajemen Azure Data Explorer dalam alur kerja ADF. Artikel ini mengajarkan cara membuat alur dengan aktivitas pencarian dan aktivitas ForEach yang berisi aktivitas perintah Azure Data Explorer.
Prasyarat
- Langganan Azure. Membuat akun Azure gratis.
- Kluster dan database Azure Data Explorer. Membuat kluster dan database.
- Sumber data.
- Pabrik data. Membuat pabrik data.
Membuat alur baru
Pilih alat pensil Penulis.
Buat alur baru dengan memilih + lalu pilih Alur dari menu drop-down.
Membuat aktivitas Pencarian
Aktivitas pencarian dapat mengambil himpunan data dari sumber data apa pun yang didukung Azure Data Factory. Output dari aktivitas Pencarian dapat digunakan dalam ForEach atau aktivitas lainnya.
Di panel Aktivitas , di bawah Umum, pilih aktivitas Pencarian . Seret dan letakkan ke kanvas utama di sebelah kanan.
Kanvas sekarang berisi aktivitas Pencarian yang Anda buat. Gunakan tab di bawah kanvas untuk mengubah parameter yang relevan. Secara umum, ganti nama aktivitas.
Tip
Klik area kanvas kosong untuk melihat properti alur. Gunakan tab Umum untuk mengganti nama alur. Alur kami diberi nama pipeline-4-docs.
Membuat himpunan data Azure Data Explorer dalam aktivitas pencarian
Di Pengaturan, pilih himpunan data Sumber Azure Data Explorer yang telah dibuat sebelumnya, atau pilih + Baru untuk membuat himpunan data baru.
Pilih himpunan data Azure Data Explorer (Kusto) dari jendela Himpunan Data Baru. Pilih Lanjutkan untuk menambahkan himpunan data baru.
Parameter himpunan data Azure Data Explorer baru terlihat di Pengaturan. Untuk memperbarui parameter, pilih Edit.
Tab baru AzureDataExplorerTable terbuka di kanvas utama.
- Pilih Umum dan edit nama himpunan data.
- Pilih Koneksi untuk mengedit properti himpunan data.
- Pilih layanan Tertaut dari menu drop-down, atau pilih + Baru untuk membuat layanan tertaut baru.
Saat membuat layanan tertaut baru, halaman Layanan Tertaut Baru (Azure Data Explorer) terbuka:
- Pilih Nama untuk layanan tertaut Azure Data Explorer. Tambahkan Deskripsi jika diperlukan.
- Di Sambungkan melalui runtime integrasi, ubah pengaturan saat ini, jika diperlukan.
- Dalam Metode pemilihan akun pilih kluster Anda menggunakan salah satu dari dua metode:
- Pilih tombol radio Dari langganan Azure dan pilih akun langganan Azure Anda. Kemudian, pilih Kluster Anda. Perhatikan drop-down hanya akan mencantumkan kluster milik pengguna.
- Sebagai gantinya, pilih tombol radio Masukkan secara manual dan masukkan Titik Akhir (URL kluster) Anda.
- Tentukan Penyewa.
- Masukkan ID perwakilan layanan. Nilai ini dapat ditemukan di portal Azure di bawah ID Aplikasi Gambaran Umum>Pendaftaran>Aplikasi (klien). Prinsipal harus memiliki izin yang memadai, sesuai dengan tingkat izin yang diperlukan oleh perintah yang digunakan.
- Pilih tombol Kunci perwakilan layanan dan masukkan Kunci Perwakilan Layanan.
- Pilih Database Anda dari menu dropdown. Atau, pilih kotak centang Edit dan masukkan nama database Anda.
- Pilih Uji Koneksi untuk menguji koneksi layanan tertaut yang Anda buat. Jika Anda dapat menyambungkan ke penyetelan, koneksi tanda centang hijau akan berhasil muncul.
- Pilih Selesai untuk menyelesaikan pembuatan layanan tertaut.
Setelah Anda menyiapkan layanan tertaut, Di Koneksi AzureDataExplorerTable>, tambahkan Nama tabel. Pilih Pratinjau data, untuk memastikan bahwa data disajikan dengan benar.
Himpunan data Anda sekarang siap, dan Anda dapat terus mengedit alur Anda.
Menambahkan kueri ke aktivitas pencarian Anda
Di Pengaturan alur-4-dokumen>tambahkan kueri di kotak teks Kueri, misalnya:
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by Database
Ubah properti Batas waktu kueri atau Tidak ada pemotongan dan Baris pertama saja, sesuai kebutuhan. Dalam alur ini, kami mempertahankan batas waktu Kueri default dan menghapus centang pada kotak centang.
Membuat aktivitas For-Each
Aktivitas For-Each digunakan untuk mengulangi koleksi dan menjalankan aktivitas yang ditentukan dalam perulangan.
Sekarang Anda menambahkan aktivitas For-Each ke alur. Aktivitas ini akan memproses data yang dikembalikan dari aktivitas Pencarian.
Di panel Aktivitas , di perulangan & Kondisional, pilih aktivitas ForEach dan seret dan letakkan ke kanvas.
Gambar garis antara output aktivitas Pencarian dan input aktivitas ForEach di kanvas untuk menghubungkannya.
Pilih aktivitas ForEach di kanvas. Di tab Pengaturan di bawah ini:
Centang kotak Centang berurutan untuk pemrosesan berurutan hasil Pencarian, atau biarkan tidak dicentang untuk membuat pemrosesan paralel.
Atur jumlah Batch.
Di Item, berikan referensi berikut ke nilai output: @activity('Lookup1').output.value
Membuat aktivitas Perintah Azure Data Explorer dalam aktivitas ForEach
Klik dua kali aktivitas ForEach di kanvas untuk membukanya di kanvas baru untuk menentukan aktivitas dalam ForEach.
Di panel Aktivitas , di bawah Azure Data Explorer, pilih aktivitas Perintah Azure Data Explorer dan seret dan letakkan ke kanvas.
Di tab Koneksi , pilih Layanan Tertaut yang sama yang sebelumnya dibuat.
Di tab Perintah , berikan perintah berikut ini:
.export async compressed into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with ( sizeLimit=100000, namePrefix=export ) <| ClusterQueries | where Database == "@{item().Database}"
Perintah menginstruksikan Azure Data Explorer untuk mengekspor hasil kueri tertentu ke dalam penyimpanan blob, dalam format terkompresi. Ini berjalan secara asinkron (menggunakan pengubah asinkron). Kueri membahas kolom database dari setiap baris dalam hasil aktivitas Pencarian. Batas waktu Perintah dapat dibiarkan tidak berubah.
Catatan
Aktivitas perintah memiliki batas berikut:
- Batas ukuran: Ukuran respons 1 MB
- Batas waktu: 20 menit (default), 1 jam (maksimum).
- Jika diperlukan, Anda dapat menambahkan kueri ke hasil menggunakan AdminThenQuery, untuk mengurangi ukuran/waktu yang dihasilkan.
Sekarang alur sudah siap. Anda dapat kembali ke tampilan alur utama dengan mengklik nama alur.
Pilih Debug sebelum menerbitkan alur. Kemajuan alur dapat dipantau di tab Output .
Anda dapat Menerbitkan Semua lalu Menambahkan pemicu untuk menjalankan alur.
Output perintah manajemen
Struktur output aktivitas perintah dirinci di bawah ini. Output ini dapat digunakan oleh aktivitas berikutnya dalam alur.
Nilai yang dikembalikan dari perintah manajemen non-asinkron
Dalam perintah manajemen non-asinkron, struktur nilai yang dikembalikan mirip dengan struktur hasil aktivitas Pencarian. Bidang count
menunjukkan jumlah rekaman yang dikembalikan. Bidang value
array tetap berisi daftar rekaman.
{
"count": "2",
"value": [
{
"ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd",
"ExtentSize": 1214.0,
"CompressedSize": 520.0
},
{
"ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974",
"ExtentSize": 1114.0,
"CompressedSize": 504.0
}
]
}
Nilai yang dikembalikan dari perintah manajemen asinkron
Dalam perintah manajemen asinkron, aktivitas melakukan polling tabel operasi di belakang layar, hingga operasi asinkron selesai atau waktu habis. Oleh karena itu, nilai yang dikembalikan akan berisi hasil untuk .show operations OperationId
properti OperationId yang diberikan. Periksa nilai properti Status dan Status , untuk memverifikasi keberhasilan penyelesaian operasi.
{
"count": "1",
"value": [
{
"OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42",
"Operation": "TableSetOrAppend",
"NodeId": "",
"StartedOn": "2019-06-23T10:12:44.0371419Z",
"LastUpdatedOn": "2019-06-23T10:12:46.7871468Z",
"Duration": "00:00:02.7500049",
"State": "Completed",
"Status": "",
"RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f",
"ShouldRetry": false,
"Database": "MyDatabase",
"Principal": "<some principal id>",
"User": "<some User id>"
}
]
}