Memindahkan data dari sumber HTTP menggunakan Azure Data Factory
Catatan
Artikel ini berlaku untuk versi 1 dari Data Factory. Jika Anda menggunakan versi layanan Azure Data Factory saat ini, lihat Konektor HTTP di V2.
Artikel ini menguraikan cara menggunakan Aktivitas Salin di Azure Data Factory untuk memindahkan data dari titik akhir HTTP lokal atau cloud ke penyimpanan data sink yang didukung. Artikel ini dibuat berdasarkan Memindahkan data dengan menggunakan Aktivitas Salin, yang menyajikan ringkasan pergerakan data dengan menggunakan Aktivitas Salin. Artikel ini juga mencantumkan penyimpanan data yang didukung Aktivitas Salin sebagai sumber dan sink.
Data Factory saat ini hanya mendukung pemindahan data dari sumber HTTP ke penyimpanan data lainnya. Ini tidak mendukung pemindahan data dari penyimpanan data lain ke tujuan HTTP.
Skenario dan jenis autentikasi yang didukung
Anda dapat menggunakan konektor HTTP ini untuk mengambil data dari cloud dan titik akhir HTTP/S lokal dengan menggunakan metode HTTP GET atau POST. Jenis autentikasi berikut ini didukung: Anonymous, Basic, Digest, Windows, dan ClientCertificate. Perhatikan perbedaan antara konektor ini dan Konektor tabel web. Konektor tabel web mengekstrak konten tabel dari halaman web HTML.
Saat menyalin data dari titik akhir HTTP lokal, Anda harus memasang Gateway Manajemen Data di lingkungan lokal atau di komputer virtual Azure. Untuk mempelajari tentang Gateway Manajemen Data dan untuk instruksi langkah demi langkah tentang cara menyiapkan gateway, lihat Memindahkan data antara lokasi lokal dan cloud.
Mulai
Anda dapat membuat alur yang memiliki aktivitas salin untuk memindahkan data dari sumber HTTP dengan menggunakan alat atau API yang berbeda:
Cara termudah untuk membuat jalur adalah dengan menggunakan wizard Salin Data. Untuk panduan cepat membuat alur dengan menggunakan wizard Salin Data, lihat Tutorial: Membuat alur menggunakan wizard Salin.
Anda juga dapat menggunakan alat berikut untuk membuat alur: Visual Studio, Azure PowerShell, templat Azure Resource Manager, .NET API, atau REST API. Untuk petunjuk langkah demi langkah tentang cara membuat alur yang memiliki aktivitas salin, lihat tutorial Aktivitas Salin. Untuk sampel JSON yang menyalin data dari sumber HTTP ke penyimpanan Azure Blob, lihat contoh JSON.
Properti layanan tertaut
Tabel berikut ini menjelaskan elemen JSON yang khusus untuk layanan tertaut HTTP:
| Properti | Deskripsi | Diperlukan |
|---|---|---|
| jenis | Properti jenis harus diatur ke Http. | Ya |
| url | URL dasar ke server web. | Ya |
| authenticationType | Menentukan jenis autentikasi. Nilai yang diizinkan adalah Anonymous, Basic, Digest, Windows, dan ClientCertificate. Lihat bagian selanjutnya dalam artikel ini untuk properti lainnya dan sampel JSON untuk jenis autentikasi ini. |
Ya |
| enableServerCertificateValidation | Menentukan apakah akan mengaktifkan validasi sertifikat TLS/SSL server jika sumbernya adalah server web HTTPS. Ketika server HTTPS Anda menggunakan sertifikat yang ditandatangani sendiri, atur ini ke false. | Tidak (defaultnya adalah true) |
| gatewayName | Nama instans Gateway Manajemen Data yang akan digunakan untuk menyambungkan ke sumber HTTP lokal. | Ya, jika Anda menyalin data dari sumber HTTP lokal |
| encryptedCredential | Informasi masuk terenkripsi untuk mengakses titik akhir HTTP. Nilai ini digenerasi otomatis saat Anda mengonfigurasi informasi autentikasi dalam wizard Salin atau dengan menggunakan kotak dialog ClickOnce. | Tidak (terapkan hanya ketika Anda menyalin data dari server HTTP lokal) |
Untuk detail tentang pengaturan informasi masuk untuk sumber data konektor HTTP lokal, lihat Memindahkan data antara sumber lokal dan cloud dengan menggunakan Gateway Manajemen Data.
Menggunakan autentikasi Basic, Digest, atau Windows
Atur authenticationType ke Basic, Digest, atau Windows. Selain properti konektor HTTP generik yang dijelaskan di bagian sebelumnya, atur properti berikut:
| Properti | Deskripsi | Diperlukan |
|---|---|---|
| userName | Nama pengguna yang digunakan untuk mengakses titik akhir HTTP. | Ya |
| kata sandi | Kata sandi untuk pengguna (nama pengguna). | Ya |
Contoh: Menggunakan autentikasi Basic, Digest, atau Windows
{
"name": "HttpLinkedService",
"properties":
{
"type": "Http",
"typeProperties":
{
"authenticationType": "basic",
"url" : "https://en.wikipedia.org/wiki/",
"userName": "user name",
"password": "password"
}
}
}
Menggunakan autentikasi ClientCertificate
Untuk menggunakan autentikasi dasar, atur authenticationType ke ClientCertificate. Selain properti konektor HTTP generik yang dijelaskan di bagian sebelumnya, atur properti berikut:
| Properti | Deskripsi | Diperlukan |
|---|---|---|
| embeddedCertData | Konten data biner yang dikodekan Base64 dari file PFX. | Menentukan embeddedCertData atau certThumbprint |
| certThumbprint | Thumbprint sertifikat yang terpasang di penyimpanan sertifikasi mesin gateway Anda. Terapkan hanya saat Anda menyalin data dari sumber HTTP lokal. | Menentukan embeddedCertData atau certThumbprint |
| kata sandi | Kata sandi yang terkait dengan sertifikat. | Tidak |
Jika Anda menggunakan certThumbprint untuk autentikasi dan sertifikat dipasang di penyimpanan pribadi komputer lokal, berikan izin baca ke layanan gateway:
- Buka Microsoft Management Console (MMC). Tambahkan snap-in Sertifikat yang menargetkan Komputer Lokal.
- Perluas Sertifikat>Pribadi, lalu pilih Sertifikat.
- Klik kanan sertifikat dari penyimpanan pribadi, lalu pilih Semua Tugas>Kelola Kunci Pribadi.
- Pada tab Keamanan, tambahkan akun pengguna di mana Layanan Host Gateway Manajemen Data dijalankan, dengan akses baca ke sertifikat.
Contoh: Menggunakan sertifikat klien
Layanan tertaut ini menghubungkan pabrik data Anda ke server web HTTP lokal. Ini menggunakan sertifikat klien yang dipasang pada mesin yang memiliki Gateway Manajemen Data terpasang.
{
"name": "HttpLinkedService",
"properties":
{
"type": "Http",
"typeProperties":
{
"authenticationType": "ClientCertificate",
"url": "https://en.wikipedia.org/wiki/",
"certThumbprint": "thumbprint of certificate",
"gatewayName": "gateway name"
}
}
}
Contoh: Menggunakan sertifikat klien dalam file
Layanan tertaut ini menghubungkan pabrik data Anda ke server web HTTP lokal. Ini menggunakan file sertifikat klien pada mesin yang memiliki Gateway Manajemen Data terpasang.
{
"name": "HttpLinkedService",
"properties":
{
"type": "Http",
"typeProperties":
{
"authenticationType": "ClientCertificate",
"url": "https://en.wikipedia.org/wiki/",
"embeddedCertData": "Base64-encoded cert data",
"password": "password of cert"
}
}
}
Properti himpunan data
Beberapa bagian dari file JSON himpunan data, seperti struktur, ketersediaan, dan kebijakan, mirip untuk semua jenis himpunan data (Database Azure SQL, penyimpanan Azure Blob, penyimpanan Azure Table).
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat Membuat himpunan data.
Bagian typeProperties berbeda untuk setiap jenis himpunan data. Bagian typeProperties menyediakan informasi tentang lokasi data di penyimpanan data. Bagian typeProperties untuk himpunan data dari jenis Http memiliki properti berikut:
| Properti | Deskripsi | Diperlukan |
|---|---|---|
| jenis | Jenis himpunan data harus diatur ke Http. | Ya |
| relativeUrl | URL relatif terhadap sumber daya yang berisi data. Jika jalur tidak ditentukan, hanya URL yang ditentukan dalam definisi layanan tertaut yang digunakan. Untuk membangun URL dinamis, Anda dapat menggunakan fungsi Data Factory dan variabel sistem. Contoh: relativeUrl: $$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart). |
Tidak |
| requestMethod | Metode HTTP. Nilai yang diperbolehkan adalah GET dan POST. | Tidak (defaultnya adalah GET) |
| additionalHeaders | Header permintaan HTTP tambahan. | Tidak |
| requestBody | Isi untuk permintaan HTTP. | Tidak |
| format | Jika Anda ingin mengambil data dari titik akhir HTTP apa adanya tanpa menguraikannya, lewati pengaturan format. Jika Anda ingin mengurai konten respons HTTP selama penyalinan, jenis format berikut didukung: TextFormat, JsonFormat, AvroFormat, OrcFormat, dan ParquetFormat. Untuk informasi selengkapnya, lihat Bagian Format Teks, Format JSON, Format Avro, Format Orc, dan Format Parket. |
Tidak |
| compression | Tentukan jenis dan tingkat kompresi untuk data. Jenis yang didukung: GZip, Deflate, BZip2, dan ZipDeflate. Tingkat yang didukung: Optimal dan Tercepat. Untuk informasi selengkapnya, lihat File dan format kompresi di Azure Data Factory. | Tidak |
Contoh: Menggunakan metode GET (default)
{
"name": "HttpSourceDataInput",
"properties": {
"type": "Http",
"linkedServiceName": "HttpLinkedService",
"typeProperties": {
"relativeUrl": "XXX/test.xml",
"additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
},
"external": true,
"availability": {
"frequency": "Hour",
"interval": 1
}
}
}
Contoh: Menggunakan metode POST
{
"name": "HttpSourceDataInput",
"properties": {
"type": "Http",
"linkedServiceName": "HttpLinkedService",
"typeProperties": {
"relativeUrl": "/XXX/test.xml",
"requestMethod": "Post",
"requestBody": "body for POST HTTP request"
},
"external": true,
"availability": {
"frequency": "Hour",
"interval": 1
}
}
}
Properti Aktivitas Salin
Properti seperti nama, deskripsi, tabel input dan output, dan kebijakan tersedia untuk semua jenis aktivitas.
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Membuat alur.
Properti yang tersedia di bagian typeProperties aktivitas berbeda-beda untuk setiap jenis aktivitas. Untuk aktivitas penyalinan, properti bervariasi bergantung pada jenis sumber dan sink.
Saat ini, ketika sumber dalam Aktivitas Salin adalah jenis HttpSource, properti berikut didukung:
| Properti | Deskripsi | Diperlukan |
|---|---|---|
| httpRequestTimeout | Waktu habis (nilai TimeSpan) untuk permintaan HTTP untuk mendapatkan respons. Ini adalah waktu habis untuk mendapatkan respons, bukan waktu habis untuk membaca data respons. | Tidak (nilai default: 00:01:40) |
File yang didukung dan format kompresi
Lihat Format file dan kompresi di Azure Data Factory untuk info selengkapnya.
Contoh JSON
Contoh berikut ini menyediakan sampel definisi JSON yang bisa Anda gunakan untuk membuat jalur dengan menggunakan Visual Studio atau Azure PowerShell. Contoh menunjukkan cara menyalin data dari sumber HTTP ke penyimpanan Azure Blob. Namun, data dapat disalin langsung dari sumber mana pun ke salah satu sink yang didukung dengan menggunakan Aktivitas Salin di Azure Data Factory.
Contoh: Menyalin data dari sumber HTTP ke penyimpanan Azure Blob
Solusi Data Factory untuk sampel ini berisi entitas Data Factory berikut:
- Layanan tertaut jenis HTTP.
- Layanan tertaut jenis AzureStorage.
- Himpunan data input jenis Http.
- Himpunan data output jenis AzureBlob.
- Jalur yang memiliki aktivitas salin yang menggunakan HttpSource dan BlobSink.
Sampel menyalin data dari sumber HTTP ke blob Azure setiap jam. Properti JSON yang digunakan dalam sampel ini dijelaskan di bagian setelah sampel.
Layanan tertaut HTTP
Contoh ini menggunakan layanan tertaut HTTP dengan autentikasi anonim. Lihat Layanan tertaut HTTP untuk jenis autentikasi berbeda yang bisa Anda gunakan.
{
"name": "HttpLinkedService",
"properties":
{
"type": "Http",
"typeProperties":
{
"authenticationType": "Anonymous",
"url" : "https://en.wikipedia.org/wiki/"
}
}
}
Layanan tertaut penyimpanan Azure
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>"
}
}
}
Himpunan data input HTTP
Mengatur eksternal ke true memberi tahu layanan Data Factory bahwa himpunan data berada di luar pabrik data dan tidak diproduksi oleh aktivitas di pabrik data.
{
"name": "HttpSourceDataInput",
"properties": {
"type": "Http",
"linkedServiceName": "HttpLinkedService",
"typeProperties": {
"relativeUrl": "$$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart)",
"additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
},
"external": true,
"availability": {
"frequency": "Hour",
"interval": 1
}
}
}
Himpunan data output blob Azure
Data ditulis ke blob baru setiap jam (frekuensi: jam, interval: 1).
{
"name": "AzureBlobOutput",
"properties":
{
"type": "AzureBlob",
"linkedServiceName": "AzureStorageLinkedService",
"typeProperties":
{
"folderPath": "adfgetstarted/Movies"
},
"availability":
{
"frequency": "Hour",
"interval": 1
}
}
}
Alur yang menggunakan aktivitas salin
Alur berisi aktivitas salin yang dikonfigurasi untuk menggunakan himpunan data input dan output. Aktivitas salin dijadwalkan untuk berjalan setiap jam. Dalam definisi jalur JSON, jenis sumber diatur ke HttpSource dan jenis sink diatur ke BlobSink.
Untuk daftar properti yang didukung HttpSource, lihat HttpSource.
{
"name":"SamplePipeline",
"properties":{
"start":"2014-06-01T18:00:00",
"end":"2014-06-01T19:00:00",
"description":"pipeline with a copy activity",
"activities":[
{
"name": "HttpSourceToAzureBlob",
"description": "Copy from an HTTP source to an Azure blob",
"type": "Copy",
"inputs": [
{
"name": "HttpSourceDataInput"
}
],
"outputs": [
{
"name": "AzureBlobOutput"
}
],
"typeProperties": {
"source": {
"type": "HttpSource"
},
"sink": {
"type": "BlobSink"
}
},
"scheduler": {
"frequency": "Hour",
"interval": 1
},
"policy": {
"concurrency": 1,
"executionPriorityOrder": "OldestFirst",
"retry": 0,
"timeout": "01:00:00"
}
}
]
}
}
Catatan
Untuk memetakan kolom dari himpunan data sumber ke kolom dari himpunan data sink, lihat Memetakan kolom himpunan data di Azure Data Factory.
Performa dan penyetelan
Untuk mempelajari tentang faktor-faktor utama yang memengaruhi performa pergerakan data (Aktivitas Salin) di Azure Data Factory dan berbagai cara untuk mengoptimalkannya, lihat panduan penyetelan dan performa Aktivitas Salin.