Format file dan kompresi yang didukung oleh Azure Data Factory

Topik ini berlaku untuk konektor berikut: Amazon S3, Azure Blob, Azure Data Lake Store, Sistem File, FTP, HDFS, HTTP, dan SFTP.

Catatan

Artikel ini berlaku untuk Azure Data Factory versi 1. Jika Anda menggunakan versi layanan Data Factory saat ini, lihat format file dan codec kompresi yang didukung di Data Factory.

Azure Data Factory mendukung jenis format file berikut:

Format teks

Jika Anda ingin membaca dari file teks atau menulis ke file teks, atur properti type di bagian format dari himpunan data ke TextFormat. Anda juga dapat menentukan properti opsional berikut di bagian format tersebut. Lihat bagian Contoh TextFormat tentang cara mengonfigurasikan.

Properti Deskripsi Nilai yang diizinkan Diperlukan
columnDelimiter Karakter yang digunakan untuk memisahkan kolom dalam sebuah file. Anda dapat mempertimbangkan untuk menggunakan karakter langka yang tidak dapat dicetak yang mungkin tidak ada dalam data Anda. Misalnya, tentukan "\u0001", yang mewakili Start of Heading (SOH). Hanya satu karakter yang diperbolehkan. Nilai default-nya adalah koma (',') .

Untuk menggunakan karakter Unicode, lihat Karakter Unicode untuk mendapatkan kode yang sesuai.
Tidak
rowDelimiter Karakter yang digunakan untuk memisahkan baris dalam sebuah file. Hanya satu karakter yang diperbolehkan. Nilai default-nya adalah salah satu dari nilai berikut pada baca: ["\r\n", "\r", "\n"] dan "\r\n" pada tulis. Tidak
escapeChar Karakter khusus yang digunakan untuk keluar dari pemisah kolom dalam konten file input.

Anda tidak dapat menentukan escapeChar dan quoteChar untuk tabel.
Hanya satu karakter yang diperbolehkan. Tidak ada nilai default.

Contoh: jika Anda memiliki koma (',') sebagai pemisah kolom, tetapi Anda ingin memiliki karakter koma dalam teks (contoh: "Halo, dunia"), Anda dapat menentukan '$' sebagai karakter escape dan menggunakan string "Hello$, world" di sumbernya.
Tidak
quoteChar Karakter yang digunakan untuk mengutip nilai untai (karakter). Pemisah kolom dan baris di dalam karakter kutipan akan diperlakukan sebagai bagian dari nilai untai (karakter). Properti ini berlaku untuk himpunan data input dan output.

Anda tidak dapat menentukan escapeChar dan quoteChar untuk tabel.
Hanya satu karakter yang diperbolehkan. Tidak ada nilai default.

Misalnya, jika Anda memiliki koma (',') sebagai pembatas kolom tetapi Anda ingin memiliki karakter koma dalam teks (contoh: <Halo, dunia>), Anda dapat mendefinisikan " (tanda kutip ganda) sebagai karakter kutip dan gunakan string "Halo, dunia" di sumbernya.
Tidak
nullValue Satu atau beberapa karakter yang digunakan untuk mewakili nilai null. Satu atau beberapa karakter. Nilai default adalah "\N" dan "NULL" pada baca dan "\N" pada tulis. Tidak
encodingName Tentukan nama pengodean. Nama pengodean yang valid. lihat Properti Encoding.EncodingName. Contoh: windows-1250 atau shift_jis. Nilai default-nya adalah UTF-8. Tidak
firstRowAsHeader Menentukan apakah akan mempertimbangkan baris pertama sebagai header. Untuk himpunan data input, Data Factory akan membaca baris pertama sebagai header. Untuk himpunan data output, Data Factory akan menulis baris pertama sebagai header.

Lihat Skenario penggunaan firstRowAsHeader dan skipLineCount untuk skenario sampel.
True
False (default)
Tidak
skipLineCount Menunjukkan jumlah baris yang akan dilewati saat membaca data dari file input. Jika skipLineCount dan firstRowAsHeader ditentukan, baris tersebut akan dilewati terlebih dahulu dan kemudian informasi header dibaca dari file input.

Lihat Skenario penggunaan firstRowAsHeader dan skipLineCount untuk skenario sampel.
Bilangan bulat Tidak
treatEmptyAsNull Menentukan apakah akan memperlakukan string null atau kosong sebagai nilai null saat membaca data dari file input. True (default)
False
Tidak

Contoh TextFormat

Dalam definisi JSON berikut untuk himpunan data, beberapa properti opsional ditentukan.

"typeProperties":
{
    "folderPath": "mycontainer/myfolder",
    "fileName": "myblobname",
    "format":
    {
        "type": "TextFormat",
        "columnDelimiter": ",",
        "rowDelimiter": ";",
        "quoteChar": "\"",
        "NullValue": "NaN",
        "firstRowAsHeader": true,
        "skipLineCount": 0,
        "treatEmptyAsNull": true
    }
},

Untuk menggunakan escapeChar alih-alih quoteChar, ganti baris dengan quoteChar escapeChar berikut:

"escapeChar": "$",

Skenario untuk menggunakan firstRowAsHeader dan skipLineCount

  • Anda akan menyalin dari sumber non-file ke file teks dan ingin menambahkan baris header yang berisi metadata skema (misalnya: skema SQL). Tentukan firstRowAsHeader sebagai true dalam himpunan data output untuk skenario ini.
  • Anda akan menyalin dari file teks yang berisi baris header ke sink non-file dan ingin menghilangkan baris tersebut. Tentukan firstRowAsHeader sebagai true dalam himpunan data input.
  • Anda akan menyalin dari file teks dan ingin melompati beberapa baris di awal yang tidak berisi data atau informasi header. Tentukan skipLineCount untuk menunjukkan jumlah baris yang akan dilompati. Jika sisa file berisi baris header, Anda juga dapat menentukan firstRowAsHeader. Jika skipLineCount dan firstRowAsHeader ditentukan, baris tersebut akan dilewati terlebih dahulu dan kemudian informasi header dibaca dari file input

Format JSON

Untuk mengimpor/mengekspor file JSON sebagaimana adanya ke/dari Microsoft Azure Cosmos DB, lihat bagian Impor/ekspor dokumen JSON di artikel Memindahkan data ke/dari Microsoft Azure Cosmos DB.

Jika Anda ingin mengurai file JSON atau menulis data dalam format JSON, atur properti type di bagian format ke JsonFormat. Anda juga dapat menentukan properti opsional berikut di bagian format tersebut. Lihat bagian Contoh JsonFormat tentang cara mengonfigurasikan.

Properti Deskripsi Diperlukan
filePattern Tunjukkan pola data yang disimpan di setiap file JSON. Nilai yang diizinkan adalah: setOfObjects dan arrayOfObjects. Nilai default-nya adalah setOfObjects. Lihat bagian Pola file JSON untuk detail tentang pola ini. Tidak
jsonNodeReference Jika Anda ingin mengulang dan mengekstrak data dari objek di dalam bidang larik dengan pola yang sama, tentukan jalur JSON dari larik tersebut. Properti ini hanya didukung saat menyalin data dari file JSON. Tidak
jsonPathDefinition Tentukan ekspresi jalur JSON untuk setiap pemetaan kolom dengan nama kolom yang disesuaikan (dimulai dengan huruf kecil). Properti ini hanya didukung saat menyalin data dari file JSON dan Anda dapat mengekstrak data dari objek atau array.

Untuk bidang di bawah objek root, mulailah dengan root $; untuk bidang di dalam larik yang dipilih oleh properti jsonNodeReference, mulai dari elemen larik. Lihat bagian Contoh JsonFormat tentang cara mengonfigurasikan.
Tidak
encodingName Tentukan nama pengodean. Untuk daftar nama pengodean yang valid, lihat: Properti Encoding.EncodingName. Contohnya: windows-1250 atau shift_jis. Nilai default-nya adalah: UTF-8. Tidak
nestingSeparator Karakter yang digunakan untuk memisahkan tingkat bersarang. Nilai defaultnya adalah '.' (titik). Tidak

Pola file JSON

Aktivitas salin dapat memilah pola file JSON berikut:

  • Jenis I: setOfObjects

    Setiap file berisi objek tunggal, atau beberapa objek yang dipisahkan baris/digabungkan. Jika opsi ini dipilih dalam himpunan data output, aktivitas salin akan menghasilkan satu file JSON dengan setiap objek per baris (dipisahkan baris).

    • contoh JSON objek tunggal

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      
    • contoh JSON yang dipisahkan baris

      {"time":"2015-04-29T07:12:20.9100000Z","callingimsi":"466920403025604","callingnum1":"678948008","callingnum2":"567834760","switch1":"China","switch2":"Germany"}
      {"time":"2015-04-29T07:13:21.0220000Z","callingimsi":"466922202613463","callingnum1":"123436380","callingnum2":"789037573","switch1":"US","switch2":"UK"}
      {"time":"2015-04-29T07:13:21.4370000Z","callingimsi":"466923101048691","callingnum1":"678901578","callingnum2":"345626404","switch1":"Germany","switch2":"UK"}
      
    • contoh JSON yang digabungkan

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      {
          "time": "2015-04-29T07:13:21.0220000Z",
          "callingimsi": "466922202613463",
          "callingnum1": "123436380",
          "callingnum2": "789037573",
          "switch1": "US",
          "switch2": "UK"
      }
      {
          "time": "2015-04-29T07:13:21.4370000Z",
          "callingimsi": "466923101048691",
          "callingnum1": "678901578",
          "callingnum2": "345626404",
          "switch1": "Germany",
          "switch2": "UK"
      }
      
  • Jenis II: arrayOfObjects

    Setiap file berisi array objek.

    [
        {
            "time": "2015-04-29T07:12:20.9100000Z",
            "callingimsi": "466920403025604",
            "callingnum1": "678948008",
            "callingnum2": "567834760",
            "switch1": "China",
            "switch2": "Germany"
        },
        {
            "time": "2015-04-29T07:13:21.0220000Z",
            "callingimsi": "466922202613463",
            "callingnum1": "123436380",
            "callingnum2": "789037573",
            "switch1": "US",
            "switch2": "UK"
        },
        {
            "time": "2015-04-29T07:13:21.4370000Z",
            "callingimsi": "466923101048691",
            "callingnum1": "678901578",
            "callingnum2": "345626404",
            "switch1": "Germany",
            "switch2": "UK"
        }
    ]
    

Contoh JsonFormat

Kasus 1: Menyalin data dari file JSON

Lihat dua contoh berikut saat menyalin data dari file JSON. Poin umum yang perlu diperhatikan:

Contoh 1: mengekstrak data dari objek dan larik

Dalam sampel ini, Anda ingin satu objek JSON akar dipetakan ke satu baris dalam hasil tabel. Jika Anda memiliki file JSON dengan konten berikut:

{
    "id": "ed0e4960-d9c5-11e6-85dc-d7996816aad3",
    "context": {
        "device": {
            "type": "PC"
        },
        "custom": {
            "dimensions": [
                {
                    "TargetResourceType": "Microsoft.Compute/virtualMachines"
                },
                {
                    "ResourceManagementProcessRunId": "827f8aaa-ab72-437c-ba48-d8917a7336a3"
                },
                {
                    "OccurrenceTime": "1/13/2017 11:24:37 AM"
                }
            ]
        }
    }
}

dan Anda ingin menyalinnya ke tabel Azure SQL dalam format berikut, dengan mengekstrak data dari objek dan larik:

ID deviceType targetResourceType resourceManagementProcessRunId occurrenceTime
ed0e4960-d9c5-11e6-85dc-d7996816aad3 PC Microsoft.Compute/virtualMachines 827f8aaa-ab72-437c-ba48-d8917a7336a3 13/1/2017 11.24.37

Himpunan data input dengan jenis JsonFormat didefinisikan sebagai berikut: (definisi parsial hanya dengan bagian yang relevan). Lebih spesifik:

  • Bagian structure mendefinisikan nama kolom yang disesuaikan dan jenis data yang sesuai saat mengonversi ke data tabel. Bagian ini bersifat opsional kecuali Anda perlu melakukan pemetaan kolom. Lihat bagian Memetakan kolom himpunan data sumber ke kolom himpunan data tujuan untuk detail selengkapnya.
  • jsonPathDefinition menentukan jalur JSON untuk setiap kolom yang menunjukkan dari mana harus mengekstrak data. Untuk menyalin data dari array, Anda dapat menggunakan array[x].property untuk mengekstrak nilai properti yang diberikan dari objek xth, atau menggunakan array[*].property untuk menemukan nilai dari objek apa pun yang berisi properti tersebut.
"properties": {
    "structure": [
        {
            "name": "id",
            "type": "String"
        },
        {
            "name": "deviceType",
            "type": "String"
        },
        {
            "name": "targetResourceType",
            "type": "String"
        },
        {
            "name": "resourceManagementProcessRunId",
            "type": "String"
        },
        {
            "name": "occurrenceTime",
            "type": "DateTime"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat",
            "filePattern": "setOfObjects",
            "jsonPathDefinition": {"id": "$.id", "deviceType": "$.context.device.type", "targetResourceType": "$.context.custom.dimensions[0].TargetResourceType", "resourceManagementProcessRunId": "$.context.custom.dimensions[1].ResourceManagementProcessRunId", "occurrenceTime": " $.context.custom.dimensions[2].OccurrenceTime"}      
        }
    }
}

Contoh 2: menerapkan silang beberapa objek dengan pola yang sama dari larik

Dalam sampel ini, Anda ingin mengubah satu objek JSON akar menjadi beberapa baris dalam hasil tabel. Jika Anda memiliki file JSON dengan konten berikut:

{
    "ordernumber": "01",
    "orderdate": "20170122",
    "orderlines": [
        {
            "prod": "p1",
            "price": 23
        },
        {
            "prod": "p2",
            "price": 13
        },
        {
            "prod": "p3",
            "price": 231
        }
    ],
    "city": [ { "sanmateo": "No 1" } ]
}

dan Anda ingin menyalinnya ke tabel Azure SQL dalam format berikut, dengan meratakan data di dalam larik dan menggabungkan silang dengan info root umum:

ordernumber orderdate order_pd order_price kota
01 20170122 P1 23 [{"sanmateo":"No 1"}]
01 20170122 P2 13 [{"sanmateo":"No 1"}]
01 20170122 P3 231 [{"sanmateo":"No 1"}]

Himpunan data input dengan jenis JsonFormat didefinisikan sebagai berikut: (definisi parsial hanya dengan bagian yang relevan). Lebih spesifik:

  • Bagian structure mendefinisikan nama kolom yang disesuaikan dan jenis data yang sesuai saat mengonversi ke data tabel. Bagian ini bersifat opsional kecuali Anda perlu melakukan pemetaan kolom. Lihat bagian Memetakan kolom himpunan data sumber ke kolom himpunan data tujuan untuk detail selengkapnya.
  • jsonNodeReferencemenunjukkan untuk mengulang dan mengekstrak data dari objek dengan pola yang sama di bawah garis urutan larik.
  • jsonPathDefinition menentukan jalur JSON untuk setiap kolom yang menunjukkan dari mana harus mengekstrak data. Dalam contoh ini, "ordernumber", "orderdate" dan "city" berada di bawah objek akar dengan jalur JSON yang dimulai dengan "$.", sedangkan "order_pd" dan "order_price" ditentukan dengan jalur yang diturunkan dari elemen larik tanpa "$.".
"properties": {
    "structure": [
        {
            "name": "ordernumber",
            "type": "String"
        },
        {
            "name": "orderdate",
            "type": "String"
        },
        {
            "name": "order_pd",
            "type": "String"
        },
        {
            "name": "order_price",
            "type": "Int64"
        },
        {
            "name": "city",
            "type": "String"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat",
            "filePattern": "setOfObjects",
            "jsonNodeReference": "$.orderlines",
            "jsonPathDefinition": {"ordernumber": "$.ordernumber", "orderdate": "$.orderdate", "order_pd": "prod", "order_price": "price", "city": " $.city"}         
        }
    }
}

Perhatikan poin-poin berikut:

  • Jika structure dan jsonPathDefinition tidak ditentukan di dalam himpunan data untuk Data Factory, Aktivitas Salin akan mendeteksi skema dari objek pertama dan meratakan seluruh objek.
  • Jika input JSON memiliki larik, secara default Aktivitas Salin mengonversi seluruh nilai larik menjadi untai (karakter). Anda dapat memilih untuk mengekstrak data darinya menggunakan jsonNodeReference dan/atau jsonPathDefinition, atau melompatinya dengan tidak menentukannya di jsonPathDefinition.
  • Jika ada nama duplikat di tingkat yang sama, Aktivitas Salin akan memilih nama yang terakhir.
  • Nama properti peka huruf besar/kecil. Dua properti dengan nama yang sama, tetapi kapitalisasi berbeda akan diperlakukan sebagai dua properti terpisah.

Kasus 2: Menulis data ke file JSON

Jika Anda memiliki tabel berikut ini di Microsoft Azure SQL Database:

ID order_date order_price order_by
1 20170119 2000 David
2 20170120 3500 Patrick
3 20170121 4000 Jason

dan untuk setiap baris, Anda berharap untuk menulis ke objek JSON dalam format berikut:

{
    "id": "1",
    "order": {
        "date": "20170119",
        "price": 2000,
        "customer": "David"
    }
}

Himpunan data output dengan jenis JsonFormat didefinisikan sebagai berikut: (definisi parsial dengan hanya bagian yang relevan). Lebih spesifik, bagian structure mendefinisikan nama properti yang disesuaikan dalam file tujuan, nestingSeparator (default-nya adalah ".") digunakan untuk mengidentifikasi lapisan sarang dari namanya. Bagian ini bersifat opsional kecuali Anda ingin mengubah nama properti yang dibandingkan dengan nama kolom sumber atau menumpuk beberapa properti.

"properties": {
    "structure": [
        {
            "name": "id",
            "type": "String"
        },
        {
            "name": "order.date",
            "type": "String"
        },
        {
            "name": "order.price",
            "type": "Int64"
        },
        {
            "name": "order.customer",
            "type": "String"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat"
        }
    }
}

Format Avro

Jika Anda ingin mengurai file Avro atau menulis data dalam format Avro, atur properti formattype ke AvroFormat. Anda tidak perlu menentukan properti apa pun di bagian Format dalam bagian typeProperties. Contoh:

"format":
{
    "type": "AvroFormat",
}

Untuk menggunakan format Avro dalam tabel Apache Hive, Anda dapat merujuk ke Tutorial Apache Hive.

Perhatikan poin-poin berikut:

Format ORC

Jika Anda ingin mengurai file ORC atau menulis data dalam format ORC, atur properti formattype ke OrcFormat. Anda tidak perlu menentukan properti apa pun di bagian Format dalam bagian typeProperties. Contoh:

"format":
{
    "type": "OrcFormat"
}

Penting

Jika Anda tidak menyalin file ORC sebagaimana adanya antara penyimpanan data lokal dan cloud, Anda perlu menginstal JRE 8 (Java Runtime Environment) di komputer gateway Anda. Gateway 64-bit membutuhkan JRE 64-bit dan gateway 32-bit membutuhkan JRE 32-bit. Anda dapat menemukan kedua versi tersebut dari sini. Pilih versi yang sesuai.

Perhatikan poin berikut:

  • Jenis data kompleks tidak didukung (STRUCT, MAP, LIST, UNION)
  • File ORC memiliki tiga opsi terkait pemadatan: NONE, ZLIB, SNAPPY. Data Factory mendukung membaca data dari file ORC dalam salah satu format terkompresi ini. Ini menggunakan kodek pemadatan dalam metadata untuk membaca data. Namun, saat menulis ke file ORC, Data Factory memilih ZLIB, yang merupakan default untuk ORC. Saat ini, tidak ada opsi untuk mengganti perilaku ini.

Format Parquet

Jika Anda ingin mengurai file Parket atau menulis data dalam format Parket, atur properti formattype ke ParquetFormat. Anda tidak perlu menentukan properti apa pun di bagian Format dalam bagian typeProperties. Contoh:

"format":
{
    "type": "ParquetFormat"
}

Penting

Jika Anda tidak menyalin file Parquet sebagaimana adanya antara penyimpanan data lokal dan cloud, Anda perlu menginstal JRE 8 (Java Runtime Environment) di komputer gateway Anda. Gateway 64-bit membutuhkan JRE 64-bit dan gateway 32-bit membutuhkan JRE 32-bit. Anda dapat menemukan kedua versi tersebut dari sini. Pilih versi yang sesuai.

Perhatikan poin berikut:

  • Jenis data kompleks tidak didukung (MAP, LIST)
  • File Parquet memiliki opsi terkait pemadatan berikut: NONE, SNAPPY, GZIP, dan LZO. Data Factory mendukung membaca data dari file ORC dalam salah satu format terkompresi ini. Ini menggunakan kodek pemadatan dalam metadata untuk membaca data. Namun, saat menulis ke file Parquet, Azure Data Factory memilih SNAPPY, yang merupakan default untuk format Parquet. Saat ini, tidak ada opsi untuk mengganti perilaku ini.

Dukungan kompresi

Memproses himpunan data yang besar dapat menyebabkan I/O dan kemacetan jaringan. Oleh karena itu, data terkompresi yang disimpan tidak hanya dapat mempercepat transfer data melalui jaringan dan menghemat ruang disk, tetapi juga membawa peningkatan kinerja yang signifikan dalam memproses data besar. Saat ini, kompresi didukung untuk penyimpanan data berbasis file seperti Azure Blob atau Sistem File Lokal.

Untuk menentukan kompresi untuk himpunan data, gunakan properti kompresi di himpunan data JSON seperti pada contoh berikut:

{  
    "name": "AzureBlobDataSet",  
    "properties": {  
        "availability": {  
            "frequency": "Day",  
              "interval": 1  
        },  
        "type": "AzureBlob",  
        "linkedServiceName": "StorageLinkedService",  
        "typeProperties": {  
            "fileName": "pagecounts.csv.gz",  
            "folderPath": "compression/file/",  
            "compression": {  
                "type": "GZip",  
                "level": "Optimal"  
            }  
        }  
    }  
}  

Misalkan himpunan data sampel digunakan sebagai output dari aktivitas penyalinan, aktivitas penyalinan mengompresi data output dengan codec GZIP menggunakan rasio optimal dan kemudian menulis data yang dikompresi ke dalam file bernama pagecounts.csv.gz di Azure Blob Storage.

Catatan

Pengaturan kompresi tidak didukung untuk data dalam AvroFormat, OrcFormat, atau ParquetFormat. Saat membaca file dalam format ini, Azure Data Factory akan mendeteksi dan menggunakan kodek pemadatan dalam metadata. Saat menulis ke file dalam format ini, Data Factory akan memilih kodek pemadatan default untuk format tersebut. Misalnya, ZLIB untuk OrcFormat dan SNAPPY untuk ParquetFormat.

Bagian kompresi memiliki dua properti:

  • Jenis: codec kompresi, yang dapat berupa GZIP, Deflate, BZIP2, atau ZipDeflate.

  • Tingkat: rasio kompresi, yang bisa Optimal atau Tercepat.

    • Tercepat: Operasi pemadatan akan selesai secepat mungkin, bahkan jika file yang dihasilkan tidak dipadatkan secara optimal.

    • Optimal: Operasi pemadatan akan dipadatkan secara optimal, bahkan jika operasi membutuhkan waktu lebih lama untuk selesai.

      Untuk informasi selengkapnya, lihat topik Tingkat Kompresi.

Saat Anda menentukan properti compression dalam himpunan data input JSON, alur dapat membaca data yang dikompresi dari sumber; dan saat Anda menentukan properti dalam himpunan data output JSON, aktivitas penyalinan dapat menulis data yang dikompresi ke tujuan. Berikut beberapa contoh skenario:

  • Membaca data terkompresi GZIP dari Azure blob, mendekompresinya, dan menulis data hasil ke Azure SQL Database. Anda menentukan input himpunan data Azure Blob dengan properti JSON compressiontype sebagai GZIP.
  • Membaca data dari file teks biasa dari Sistem File lokal, mengompresnya menggunakan format GZip, dan menulis data yang dikompresi ke Azure blob. Anda menentukan himpunan data Azure Blob output dengan properti JSON compressiontype sebagai GZip.
  • Membaca file .zip server FTP, mendekompresinya untuk mendapatkan file di dalamnya, dan menempatkan file tersebut ke Azure Data Lake Store. Anda mendefinisikan input himpunan data FTP dengan properti JSON compressiontype sebagai ZipDeflate.
  • Membaca data yang dikompresi GZIP dari Azure blob, mendekompresinya, mengompresnya menggunakan BZIP2, dan menulis data hasil ke Azure blob. Anda menentukan input himpunan data Azure Blob dengan compressiontype diatur ke GZIP dan set data output dengan compressiontype diatur ke BZIP2 dalam kasus ini.

Langkah berikutnya

Lihat artikel berikut ini untuk penyimpanan data berbasis file yang didukung oleh Azure Data Factory: