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:

  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 Pribadi.
  4. 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:

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.