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/-) ① ②
Aktivitas pencarian ① ②

① 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 Postman 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.

Mulai

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 toko OData di UI portal Microsoft 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.

    Screenshot of the HTTP connector.

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

    Screenshot of configuration for an HTTP linked service.

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

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

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

  1. Buka Microsoft Management Console (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 Keamanan, tambahkan akun pengguna tempat Layanan Host Integration Runtime (DIAHostService) dijalankan, dengan akses baca ke sertifikat.
  5. 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.

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]. 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 Alur.

HTTP sebagai sumber

Azure Data Factory mendukung jenis 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
additionalHeaders Header permintaan HTTP tambahan. Tidak
requestBody Isi untuk permintaan HTTP. Tidak
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. Tidak
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama eksekusi 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

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. Tidak
requestMethod Metode HTTP. Nilai yang diizinkan adalah Get (default) dan Post. Tidak
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 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
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.
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 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. 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.