Bagikan melalui


Menyalin data dari titik akhir HTTP dengan menggunakan Azure Data Factory atau Azure Synapse Analytics

Azure Data Factory Azure Synapse Analytics

Petunjuk

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.

Artikel ini menguraikan cara menggunakan Aktivitas Salin di Azure Data Factory dan Azure Synapse untuk menyalin data dari titik akhir HTTP. Artikel ini dibangun atas Aktivitas Menyalin, yang menyajikan ikhtisar umum mengenai Aktivitas Menyalin.

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 menyalin (sumber/-) (1) (2)
Aktivitas pencarian (1) (2)

(1) Azure runtime integrasi (2) 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.

Petunjuk

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, Invoke-RestMethod PowerShell, atau browser web untuk memvalidasi.

Prasyarat

Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda perlu mengonfigurasi runtime integrasi yang dihosting sendiri self-hosted integration runtime untuk menyambungkannya.

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 managed virtual network integration runtime di Azure Data Factory untuk mengakses jaringan di lokasi 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.

Mulai sekarang

Untuk melakukan aktivitas salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Membuat layanan tertaut ke sumber HTTP menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke sumber HTTP di UI portal Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:

  2. Cari HTTP dan pilih konektor HTTP.

    Cuplikan layar konektor HTTP.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Tangkapan layar konfigurasi untuk layanan tertaut HTTP.

Detail konfigurasi konektor

Bagian berikut memberikan detail tentang properti yang dapat Anda gunakan untuk menentukan entitas yang khusus untuk konektor HTTP.

Properti layanan terhubung

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
aktifkanValidasiSertifikatServer 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. Tidak
(defaultnya adalah true)
jenisOtentikasi 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.
Tidak
connectVia Integration Runtime untuk digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, Azure Integration Runtime default digunakan. Tidak

Menggunakan Basic, Digest, atau Windows authentication

Atur properti authenticationType ke Basic, Digest, atau Windows. Selain properti generik yang dijelaskan di bagian sebelumnya, atur properti berikut:

Properti Deskripsi Wajib
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. Anda juga dapat merujuk pada 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
DataSertifikasiTertanam Data sertifikat yang dikodekan base64. Tentukan embeddedCertData atau certThumbprint.
certThumbprint Thumbprint sertifikat yang diinstal pada penyimpanan sertifikasi mesin Integration Runtime yang dihost sendiri. Hanya berlaku ketika jenis Integration Runtime yang dihost sendiri ditentukan dalam properti connectVia. Tentukan embeddedCertData atau certThumbprint.
kata sandi Kata sandi yang terkait dengan sertifikat. Tandai bidang ini sebagai jenis SecureString untuk menyimpannya dengan aman. Anda juga dapat merujuk pada rahasia yang disimpan di Azure Key Vault. Tidak

Jika Anda menggunakan certThumbprint untuk autentikasi dan sertifikat diinstal di penyimpanan pribadi komputer lokal, berikan izin baca ke Integration Runtime yang dihost sendiri:

  1. Buka Konsol Manajemen Microsoft (MMC). Tambahkan snap-in Sertifikat yang menargetkan Komputer Lokal.
  2. Perluas Sertifikat>Pribadi, lalu pilih Sertifikat.
  3. Klik kanan sertifikat dari penyimpanan pribadi, lalu pilih Semua Tugas>Kelola Kunci Privat.
  4. Pada tab Security, tambahkan akun pengguna tempat Layanan Host Integration Runtime (DIAHostService) berjalan, dengan akses baca ke sertifikat.
  5. Konektor HTTP hanya memuat sertifikat tepercaya. Jika Anda menggunakan sertifikat yang diterbitkan oleh CA yang ditandatangani sendiri atau tidak terintegrasi, untuk memungkinkan kepercayaan, sertifikat juga harus diinstal dalam salah satu lokapas 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 format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.

Properti berikut ini didukung untuk HTTP di bawah pengaturan location dalam himpunan data berbasis format:

Properti Deskripsi Wajib
jenis Properti tipe di bawah location dalam kumpulan data harus disetel ke HttpServerLocation. Ya
relativeUrl URL relatif menuju sumber daya yang berisi data. Konektor HTTP menyalin data dari URL gabungan: [URL specified in linked service][relative URL specified in dataset]. Tidak

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 Pipelines.

HTTP sebagai sumber

Azure Data Factory mendukung format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.

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.
Tidak
headerTambahan Tajuk permintaan HTTP tambahan. Tidak
requestBody Isi untuk permintaan HTTP. Tidak
httpRequestTimeout Batas waktu (nilai TimeSpan) untuk permintaan HTTP agar memperoleh respons. Nilai ini adalah batas waktu untuk mendapatkan respons, bukan batas waktu untuk membaca data respons. Nilai defaultnya adalah 00:01:40. Tidak
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. Tidak

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 Lookup

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Model sistem lama

Catatan

Model berikut ini masih didukung tanpa perubahan untuk kompatibilitas mundur. Anda disarankan untuk kedepannya menggunakan model baru yang disebutkan di bagian sebelumnya, dan antarmuka pengguna penulisan telah beralih untuk menghasilkan model baru.

Model himpunan data lawas

Properti Deskripsi Wajib
jenis Properti jenis himpunan data harus diatur ke HttpFile. Ya
relativeUrl URL relatif menuju sumber daya yang berisi data. Jika properti ini tidak ditentukan, hanya URL yang ditentukan dalam definisi layanan tertaut yang digunakan. Tidak
requestMethod Metode HTTP. Nilai yang diizinkan adalah Get (default) dan Post. Tidak
headerTambahan Tajuk permintaan HTTP tambahan. Tidak
requestBody Isi untuk permintaan HTTP. Tidak
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.
Tidak
pemadatan 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.
Tidak

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 menyalin versi lama

Properti Deskripsi Wajib
jenis Properti jenis sumber aktivitas salin harus diatur ke HttpSource. Ya
httpRequestTimeout Batas waktu (nilai TimeSpan) untuk permintaan HTTP agar memperoleh respons. Nilai ini adalah batas waktu untuk mendapatkan respons, bukan batas waktu untuk membaca data respons. Nilai defaultnya adalah 00:01:40. Tidak

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>"
            }
        }
    }
]

Untuk daftar penyimpanan data yang didukung Aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan dan format data yang didukung.