All Products
Search
Document Center

DataWorks:Azure Blob Storage

Last Updated:Mar 01, 2026

Anda dapat menggunakan sumber data Azure Blob Storage untuk membaca dan mengurai file dari Azure Blob Storage, lalu menyinkronkan datanya ke sumber data tujuan. Topik ini menjelaskan kemampuan sinkronisasi data dari sumber data Azure Blob Storage di DataWorks.

Batasan

Sumber data Azure Blob Storage mendukung tipe data berikut.

Tipe data

Deskripsi

STRING

Tipe teks.

LONG

Tipe bilangan bulat.

BYTES

Array byte. Konten teks dibaca dan dikonversi menjadi array byte dengan encoding UTF-8.

BOOL

Tipe Boolean.

DOUBLE

Tipe bilangan pecahan (floating-point).

DATE

Tipe tanggal dan waktu. Format tanggal dan waktu berikut didukung:

  • YYYY-MM-dd HH:mm:ss

  • yyyy-MM-dd

  • HH:mm:ss

Tambahkan sumber data

Sebelum mengembangkan task sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Kembangkan task sinkronisasi data

Untuk informasi mengenai titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.

Konfigurasikan task sinkronisasi offline untuk satu tabel

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasikan task sinkronisasi Batch menggunakan editor kode

Jika ingin mengonfigurasi task sinkronisasi Batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Konfigurasikan task di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat Anda mengonfigurasi task sinkronisasi Batch menggunakan editor kode.

Contoh skrip Reader

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "azureblob",
      "parameter": {
        "datasource": "",
        "object": ["f/z/1.csv"],
        "fileFormat": "csv",
        "encoding": "utf8/gbk/...",
        "fieldDelimiter": ",",
        "useMultiCharDelimiter": true,
        "lineDelimiter": "\n",
        "skipHeader": true,
        "compress": "zip/gzip",
        "column": [
          {
            "index": 0,
            "type": "long"
          },
          {
            "index": 1,
            "type": "boolean"
          },
          {
            "index": 2,
            "type": "double"
          },
          {
            "index": 3,
            "type": "string"
          },
          {
            "index": 4,
            "type": "date"
          }
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  },
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Nilai default

datasource

Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan.

Ya

Tidak ada

fileFormat

Format file sumber. Nilai yang valid: csv, text, parquet, dan orc.

Ya

Tidak ada

object

Jalur file. Parameter ini digunakan ketika `fileFormat` diatur ke `csv` atau `text`.

Catatan

Parameter ini mendukung karakter wildcard * dan dapat dikonfigurasi sebagai array.

Misalnya, untuk menyinkronkan file a/b/1.csv dan a/b/2.csv, atur parameter ini menjadi a/b/*.csv.

Ya

Parameter ini wajib jika `fileFormat` diatur ke `csv` atau `text`.

Tidak ada

path

Jalur file. Parameter ini digunakan ketika `fileFormat` diatur ke `parquet` atau `orc`.

Catatan

Parameter ini mendukung karakter wildcard * dan dapat dikonfigurasi sebagai array.

Misalnya, untuk menyinkronkan file a/b/1.orc dan a/b/2.orc, atur parameter ini menjadi a/b/*.orc.

Ya

Parameter ini wajib jika `fileFormat` diatur ke `parquet` atau `orc`.

Tidak ada

column

Daftar bidang yang akan dibaca. `type` menentukan tipe data dari sumber data. `index` menentukan nomor kolom dalam file teks tempat data dibaca. Indeks dimulai dari 0. `value` menunjukkan bahwa tipe saat ini adalah konstanta. Data tidak dibaca dari file sumber. Sebaliknya, kolom yang sesuai akan dihasilkan secara otomatis berdasarkan `value` yang ditentukan.

Secara default, Anda dapat membaca semua data sebagai tipe String. Konfigurasinya sebagai berikut.

column": ["*"]

Anda dapat menentukan informasi bidang kolom. Konfigurasinya sebagai berikut.

"column":    
    {       
        "type": "long",       
        "index": 0 // Ambil bidang int dari kolom pertama file teks Azure Blob Storage.
    },    
    {       
        "type": "string",       
        "value": "alibaba" // Hasilkan bidang string 'alibaba' dalam Azure Blob Storage Reader sebagai bidang saat ini.    
}
Catatan

Untuk informasi column yang Anda tentukan, `type` wajib diisi. Anda harus menentukan salah satu dari `index` atau `value`.

Ya

Semua data dibaca sebagai tipe STRING.

fieldDelimiter

Pemisah bidang untuk membaca data.

Catatan
  • Saat Azure Blob Storage Reader membaca data, Anda harus menentukan pemisah bidang. Jika tidak ditentukan, nilai default-nya adalah koma (,). Koma (,) juga merupakan nilai default di UI.

  • Jika pemisahnya adalah karakter non-printable, masukkan encoding Unicode-nya. Contoh: \u001b dan \u007c.

Ya

,

lineDelimiter

Pemisah baris untuk membaca data.

Catatan

Parameter ini hanya berlaku ketika `fileFormat` diatur ke `text`.

Tidak

Tidak ada

compress

Tipe kompresi file teks. Secara default, parameter ini dikosongkan, yang berarti tidak ada kompresi. Tipe kompresi yang didukung adalah gzip, bzip2, dan zip.

Tidak

Tidak ada kompresi

encoding

Format encoding file yang akan dibaca.

Tidak

utf-8

nullFormat

Dalam file teks, Anda tidak dapat menggunakan string standar untuk mendefinisikan pointer null. Sistem sinkronisasi data menyediakan parameter `nullFormat` untuk mendefinisikan string mana yang dapat merepresentasikan nilai null. Contohnya:

  • Jika Anda mengatur nullFormat:"null", yang merupakan karakter printable, dan data sumbernya adalah `null`, layanan sinkronisasi data memperlakukannya sebagai bidang null.

  • Jika Anda mengatur nullFormat:"\u0001", yang merupakan karakter non-printable, dan data sumbernya adalah string `"\u0001"`, layanan sinkronisasi data memperlakukannya sebagai bidang null.

  • Jika Anda tidak menentukan parameter "nullFormat", data sumber ditulis ke tujuan tanpa konversi apa pun.

Tidak

Tidak ada

skipHeader

Untuk file CSV, gunakan parameter skipHeader untuk menentukan apakah header tabel akan dibaca.

  • True: Header tabel dibaca selama sinkronisasi data.

  • False: Header tabel tidak dibaca selama sinkronisasi data.

Catatan

Parameter skipHeader tidak didukung untuk file terkompresi.

Tidak

false

parquetSchema

Parameter ini dikonfigurasi saat Anda membaca data dari Azure Blob Storage dalam format file Parquet. Parameter ini hanya berlaku ketika fileFormat diatur ke parquet. Parameter ini menentukan tipe data yang disimpan dalam file Parquet. Pastikan konfigurasi keseluruhan memenuhi sintaks JSON setelah Anda menentukan `parquetSchema`.

message MessageTypeName {
Required/Optional, DataType, ColumnName;
......................;
}

Format `parquetSchema` adalah sebagai berikut:

  • MessageTypeName: Masukkan nama.

  • Required/Optional: `required` menunjukkan bahwa bidang tidak boleh kosong. `optional` menunjukkan bahwa bidang boleh kosong. Atur semua bidang ke `optional`.

  • Tipe Data: File Parquet mendukung tipe data berikut: BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (gunakan BINARY untuk tipe string), dan fixed_len_byte_array.

  • Setiap definisi kolom harus diakhiri dengan titik koma (;). Baris terakhir juga harus diakhiri dengan titik koma.

Kode berikut memberikan contoh konfigurasi.

"parquetSchema": "message m { optional int32 minute_id; optional int32 dsp_id; optional int32 adx_pid; optional int64 req; optional int64 res; optional int64 suc; optional int64 imp; optional double revenue; }"

Tidak

Tidak ada

csvReaderConfig

Parameter untuk membaca file CSV. Parameter ini bertipe Map. CsvReader digunakan untuk membaca file CSV. Jika Anda tidak mengonfigurasi parameter ini, nilai default akan digunakan.

Tidak

Tidak ada

maxRetryTimes

Jumlah maksimum percobaan ulang ketika pengunduhan file gagal.

Catatan
  • Atur parameter ini ke 0 untuk menonaktifkan fitur ini.

  • Parameter ini tidak didukung di Antarmuka tanpa kode. Hanya tersedia di editor kode.

Tidak

0

retryIntervalSeconds

Interval percobaan ulang dalam detik ketika pengunduhan file gagal.

Catatan

Parameter ini tidak didukung di Antarmuka tanpa kode. Hanya tersedia di editor kode.

Tidak

5