Salin data dari titik akhir HTTP dengan menggunakan Azure Data Factory atau 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!
Artikel ini menguraikan cara menggunakan Aktivitas Salin di Azure Data Factory dan Azure Synapse untuk menyalin data dari titik akhir HTTP. Artikel ini dibuat berdasarkan Aktivitas Salin, yang menyajikan ikhtisar umum tentang Aktivitas Salin.
Perbedaan di antara konektor HTTP ini, Konektor REST dan Konektor tabel web adalah:
- Konektor REST secara khusus mendukung penyalinan data dari API RESTful;
- Konektor HTTP bersifat umum untuk mengambil data dari titik akhir HTTP apa pun, misalnya untuk mengunduh file. Sebelum konektor REST tersedia, Anda mungkin menggunakan konektor HTTP untuk menyalin data dari RESTful API, yang didukung tetapi kurang berfungsi dibandingkan dengan konektor REST.
- Konektor tabel web mengekstrak konten tabel dari halaman web HTML.
Kemampuan yang didukung
Konektor HTTP ini didukung untuk kemampuan berikut:
Kemampuan yang didukung | IR |
---|---|
Aktivitas penyalinan (sumber/-) | (1) (2) |
Aktivitas pencarian | (1) (2) |
① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri
Untuk mengetahui daftar penyimpanan data yang didukung sebagai sumber/sink, lihat Penyimpanan data yang didukung.
Anda bisa menggunakan konektor HTTP ini untuk:
- Mengambil data dari titik akhir HTTP/S dengan menggunakan metode HTTP GET atau POST.
- Mengambil data dengan menggunakan salah satu autentikasi berikut: Anonymous, Basic, Digest, Windows atau ClientCertificate.
- Salin respons HTTP apa adanya atau pilah dengan menggunakan format file dan codec pemadatan yang didukung.
Tip
Untuk menguji permintaan HTTP untuk pengambilan data sebelum Anda mengonfigurasi konektor HTTP, pelajari tentang spesifikasi API untuk persyaratan header dan body. Anda dapat menggunakan alat seperti Visual Studio, PowerShell's Invoke-RestMethod, atau browser web untuk memvalidasi.
Prasyarat
Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda harus mengonfigurasi runtime integrasi yang dihosting sendiri untuk menghubungkannya.
Jika penyimpanan data Anda adalah layanan data cloud terkelola, Anda dapat menggunakan Azure Integration Runtime. Jika akses dibatasi untuk IP yang disetujui dalam aturan firewall, Anda dapat menambahkan IP Azure Integration Runtime ke daftar izinkan.
Anda juga dapat menggunakan fitur runtime integrasi jaringan virtual terkelola di Azure Data Factory untuk mengakses jaringan lokal tanpa menginstal dan mengonfigurasi runtime integrasi yang dihosting sendiri.
Untuk informasi selengkapnya tentang mekanisme dan opsi keamanan jaringan yang didukung oleh Data Factory, lihat Strategi akses data.
Memulai
Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Penyalinan Data
- Portal Microsoft Azure
- SDK .NET
- SDK Python
- Azure PowerShell
- REST API
- Templat Azure Resource Manager
Membuat layanan tertaut ke sumber HTTP menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke toko OData di UI portal Microsoft Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari HTTP dan pilih konektor HTTP.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut memberikan detail tentang properti yang dapat Anda gunakan untuk menentukan entitas yang khusus untuk konektor HTTP.
Properti layanan tertaut
Properti berikut didukung untuk layanan tertaut HTTP:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke HttpServer. | Ya |
url | URL dasar ke server web. | Ya |
enableServerCertificateValidation | Tentukan apakah akan mengaktifkan validasi sertifikat TLS/SSL server saat Anda tersambung ke titik akhir HTTP. Jika server HTTPS Anda menggunakan sertifikat yang ditandatangani sendiri, atur properti ini ke false. | No (defaultnya adalah true) |
authenticationType | Menentukan jenis autentikasi. Nilai yang diizinkan adalah Anonymous, Basic, Digest, Windows, dan ClientCertificate. Anda juga dapat mengonfigurasi header autentikasi di properti authHeader . Lihat bagian setelah tabel ini untuk properti lainnya dan sampel JSON untuk jenis autentikasi ini. |
Ya |
authHeaders | Header permintaan HTTP tambahan untuk autentikasi. Misalnya, untuk menggunakan autentikasi kunci API, Anda dapat memilih jenis autentikasi sebagai "Anonymous" dan menentukan kunci API di header. |
No |
connectVia | Integration Runtime digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, Integration Runtime Azure default digunakan. | No |
Menggunakan autentikasi Basic, Digest, atau Windows
Atur properti authenticationType ke Basic, Digest, atau Windows. Selain properti generik yang dijelaskan di bagian sebelumnya, atur properti berikut:
Properti | Deskripsi | Wajib diisi |
---|---|---|
userName | Nama pengguna yang digunakan untuk mengakses titik akhir HTTP. | Ya |
kata sandi | Kata sandi untuk pengguna (nilai userName). Tandai bidang ini sebagai jenis SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mereferensikan rahasia yang disimpan di Azure Key Vault. | Ya |
Contoh
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "Basic",
"url" : "<HTTP endpoint>",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Menggunakan autentikasi ClientCertificate
Untuk menggunakan autentikasi ClientCertificate, atur properti authenticationType ke ClientCertificate. Selain properti generik yang dijelaskan di bagian sebelumnya, atur properti berikut:
Properti | Deskripsi | Wajib diisi |
---|---|---|
embeddedCertData | Data sertifikat yang dikodekan base64. | Menentukan embeddedCertData atau certThumbprint. |
certThumbprint | Thumbprint sertifikat yang terpasang di penyimpanan sertifikat komputer Integration Runtime yang dihost sendiri. Ini hanya berlaku ketika jenis Integration Runtime yang dihost sendiri ditentukan dalam properti connectVia. | Menentukan embeddedCertData atau certThumbprint. |
kata sandi | Kata sandi yang terkait dengan sertifikat. Tandai bidang ini sebagai jenis SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mereferensikan rahasia yang disimpan di Azure Key Vault. | No |
Jika Anda menggunakan certThumbprint untuk autentikasi dan sertifikat yang dipasang di penyimpanan pribadi komputer lokal, berikan izin baca ke Integration Runtime yang dihost sendiri:
- 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 Privat.
- Pada tab Keamanan, tambahkan akun pengguna tempat Layanan Host Integration Runtime (DIAHostService) dijalankan, dengan akses baca ke sertifikat.
- Konektor HTTP hanya memuat sertifikat tepercaya. Jika Anda menggunakan sertifikat yang diterbitkan CA yang ditandatangani sendiri atau tidak diintegrasi, untuk mengaktifkan kepercayaan, sertifikat juga harus diinstal di salah satu penyimpanan berikut:
- Orang Tepercaya
- Otoritas Sertifikasi Akar Pihak Ketiga
- Otoritas Sertifikasi Akar Tepercaya
Contoh 1: Menggunakan certThumbprint
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"certThumbprint": "<thumbprint of certificate>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh 2: Menggunakan embeddedCertData
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"embeddedCertData": "<Base64-encoded cert data>",
"password": {
"type": "SecureString",
"value": "password of cert"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Menggunakan header autentikasi
Selain itu, Anda dapat mengonfigurasikan header permintaan untuk autentikasi bersama dengan jenis autentikasi bawaan.
Contoh: Menggunakan autentikasi kunci API
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"url": "<HTTP endpoint>",
"authenticationType": "Anonymous",
"authHeader": {
"x-api-key": {
"type": "SecureString",
"value": "<API key>"
}
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data.
Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks terpisah
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut ini didukung untuk HTTP di bawah pengaturan location
dalam himpunan data berbasis format:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis di bawah location dalam himpunan data harus diatur ke HttpServerLocation. |
Ya |
relativeUrl | URL relatif terhadap sumber daya yang berisi tabel. Konektor HTTP menyalin data dari URL gabungan: [URL specified in linked service][relative URL specified in dataset] . |
No |
Catatan
Ukuran muatan permintaan HTTP yang didukung adalah sekitar 500 KB. Jika ukuran muatan yang ingin Anda berikan ke titik akhir web Anda lebih besar dari 500 KB, pertimbangkan untuk mem-batch muatan dalam potongan yang lebih kecil.
Contoh:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "HttpServerLocation",
"relativeUrl": "<relative url>"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Properti Aktivitas Salin
Bagian ini menyediakan daftar properti yang didukung sumber HTTP.
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Alur.
HTTP sebagai sumber
Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks terpisah
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut ini didukung untuk HTTP di bawah pengaturan storeSettings
dalam sumber salinan berbasis format:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis di bawah storeSettings harus diatur ke HttpReadSettings. |
Ya |
requestMethod | Metode HTTP. Nilai yang diizinkan adalah Get (default) dan Post. |
No |
additionalHeaders | Header permintaan HTTP tambahan. | No |
requestBody | Isi untuk permintaan HTTP. | No |
httpRequestTimeout | Waktu habis (nilai TimeSpan) untuk permintaan HTTP untuk mendapatkan respons. Nilai ini adalah batas waktu untuk mendapatkan respons, bukan batas waktu untuk membaca data respons. Nilai defaultnya adalah 00:01:40. | No |
maxConcurrentConnections | Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama eksekusi aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. | No |
Contoh:
"activities":[
{
"name": "CopyFromHTTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<Delimited text input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"formatSettings":{
"type": "DelimitedTextReadSettings",
"skipLineCount": 10
},
"storeSettings":{
"type": "HttpReadSettings",
"requestMethod": "Post",
"additionalHeaders": "<header key: header value>\n<header key: header value>\n",
"requestBody": "<body for POST HTTP request>"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Properti aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Model warisan
Catatan
Model berikut ini masih didukung apa adanya untuk kompatibilitas mundur. Anda disarankan untuk selanjutnya menggunakan model baru yang disebutkan di bagian di sebelumnya, dan antarmuka pengguna penulisan telah beralih untuk menghasilkan model baru.
Model himpunan data warisan
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis himpunan data harus diatur ke HttpFile. | Ya |
relativeUrl | URL relatif terhadap sumber daya yang berisi tabel. Jika properti ini tidak ditentukan, hanya URL yang ditentukan dalam definisi layanan tertaut yang digunakan. | No |
requestMethod | Metode HTTP. Nilai yang diizinkan adalah Get (default) dan Post. | No |
additionalHeaders | Header permintaan HTTP tambahan. | No |
requestBody | Isi untuk permintaan HTTP. | No |
format | Jika Anda ingin mengambil data dari titik akhir HTTP apa adanya tanpa memilahnya, lalu menyalin data ke penyimpanan berbasis file, lewati bagian format dalam definisi himpunan data input dan output. Jika Anda ingin memilah konten respons HTTP selama penyalinan, jenis format berikut didukung: TextFormat, JsonFormat, AvroFormat, OrcFormat, dan ParquetFormat. Di bawah format, atur properti jeniske salah satu nilai ini. Untuk informasi selengkapnya, lihat Format JSON, Format Teks, Format Avro, Format Orc, dan Format Parquet. |
No |
kompresi | Tentukan jenis dan tingkat kompresi untuk data. Untuk informasi selengkapnya, lihat Format file yang didukung dan kodek pemadatan. Jenis yang didukung: GZip, Deflate, BZip2, dan ZipDeflate. Tingkat yang didukung: Optimal dan Tercepat. |
No |
Catatan
Ukuran muatan permintaan HTTP yang didukung adalah sekitar 500 KB. Jika ukuran muatan yang ingin Anda berikan ke titik akhir web Anda lebih besar dari 500 KB, pertimbangkan untuk mem-batch muatan dalam potongan yang lebih kecil.
Contoh 1: Menggunakan metode Get (default)
{
"name": "HttpSourceDataInput",
"properties": {
"type": "HttpFile",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"relativeUrl": "<relative url>",
"additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
}
}
}
Contoh 2: Menggunakan metode Post
{
"name": "HttpSourceDataInput",
"properties": {
"type": "HttpFile",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"relativeUrl": "<relative url>",
"requestMethod": "Post",
"requestBody": "<body for POST HTTP request>"
}
}
}
Model sumber aktivitas salin warisan
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas salin harus diatur ke HttpSource. | Ya |
httpRequestTimeout | Waktu habis (nilai TimeSpan) untuk permintaan HTTP untuk mendapatkan respons. Nilai ini adalah batas waktu untuk mendapatkan respons, bukan batas waktu untuk membaca data respons. Nilai defaultnya adalah 00:01:40. | No |
Contoh
"activities":[
{
"name": "CopyFromHTTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<HTTP input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HttpSource",
"httpRequestTimeout": "00:01:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Konten terkait
Untuk daftar penyimpanan data yang didukung Aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan dan format data yang didukung.