All Products
Search
Document Center

DataWorks:Sumber data Azure Blob Storage

Last Updated:Sep 04, 2026

DataWorks menyediakan Azure Blob Storage Reader dan Azure Blob Storage Writer untuk membaca data dari serta menulis data ke file yang disimpan di Azure Blob Storage. Anda dapat menggunakan Azure Blob Storage Reader untuk mengakses file di Azure Blob Storage, mengurai datanya, lalu menyinkronkan data tersebut ke tujuan. Selain itu, Anda juga dapat menggunakan Azure Blob Storage Writer untuk menulis data dari sumber apa pun ke Azure Blob Storage. Topik ini menjelaskan kemampuan sinkronisasi data dari dan ke sumber data Azure Blob Storage.

Batasan

Sumber data Azure Blob Storage mendukung tipe data berikut.

Data type

Description

STRING

Teks.

LONG

Integer.

BYTES

Array byte. Teks yang dibaca dikonversi menjadi array byte. Format encoding-nya adalah UTF-8.

BOOL

Boolean.

DOUBLE

Floating point.

DATE

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 configuration. Anda dapat melihat parameter descriptions 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 batch untuk menyinkronkan data satu tabel

Lampiran: Demo skrip dan deskripsi parameter

Konfigurasikan task sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Script mode configuration. Informasi berikut menjelaskan parameter yang harus Anda konfigurasikan untuk sumber data saat mengatur task sinkronisasi batch menggunakan editor kode.

Demo skrip Reader

Berikut ini contoh konfigurasi editor kode untuk membaca data dari Azure Blob Storage. Sisi writer menggunakan stream sebagai placeholder. Gantilah dengan konfigurasi sumber data tujuan yang sebenarnya.

{
  "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

Description

Required

Default value

datasource

Nama sumber data. Editor kode memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang Anda tambahkan.

Yes

N/A

fileFormat

Jenis file sumber. Nilai yang valid: csv, text, parquet, orc, json, dan jsonl.

Yes

N/A

object

Jalur file. Parameter ini digunakan ketika fileFormat diatur ke csv, text, json, atau jsonl.

Catatan

Parameter ini mendukung wildcard * dan dapat diatur sebagai array.

Contohnya, untuk menyinkronkan file a/b/1.csv dan a/b/2.csv, Anda dapat mengatur parameter ini menjadi a/b/*.csv.

Yes

Diperlukan ketika fileFormat diatur ke csv, text, json, atau jsonl.

None

path

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

Catatan

Parameter ini mendukung wildcard * dan dapat diatur sebagai array.

Contohnya, untuk menyinkronkan file a/b/1.orc dan a/b/2.orc, Anda dapat mengatur parameter ini menjadi a/b/*.orc.

Yes

Diperlukan ketika fileFormat diatur ke parquet atau orc.

None

column

Daftar bidang yang akan dibaca. Parameter type menentukan tipe data dari sumber data:

  • Format CSV/TEXT: Parameter index menentukan nomor kolom (dimulai dari 0) dari mana kolom saat ini dibaca, dan parameter value menentukan nilai konstan.

  • Format JSON/JSONL: Gunakan jsonPath untuk menentukan ekspresi JSONPath guna mengekstraksi bidang, dan parameter value menentukan nilai konstan.

Secara default, Anda dapat membaca semua data sebagai tipe STRING. Contoh konfigurasi:

column": ["*"]

Anda dapat menentukan informasi bidang kolom. Contoh konfigurasi:

// Format CSV/TEXT
                    "column":    
    {       
        "type": "long",       
        "index": 0 //Mengambil bidang int dari kolom pertama teks Azure Blob Storage.
    },    
    {       
        "type": "string",       
        "value": "alibaba" //Azure Blob Storage Reader secara internal menghasilkan bidang string alibaba sebagai bidang saat ini.    
}
// Format JSON/JSONL
"column":    
{       
"name": "id",       
"jsonPath": "$.id",       
"type": "LONG"
},    
{       
"name": "name",       
"jsonPath": "$.user.name",       
"type": "STRING"
},    
{       
"name": "source",       
"value": "azure",       
"type": "STRING"
}
Catatan

Untuk informasi column yang Anda tentukan, field type wajib diisi. Untuk format CSV/TEXT, tentukan salah satu dari index atau value. Untuk format JSON/JSONL, tentukan salah satu dari jsonPath atau value.

Yes

Semua data dibaca sebagai tipe STRING.

fieldDelimiter

Pemisah kolom yang digunakan untuk membaca data.

Catatan
  • Azure Blob Storage Reader memerlukan pemisah kolom untuk membaca data. Jika Anda tidak menentukan pemisah, koma (,) digunakan secara default. Koma (,) juga merupakan nilai default di Konsol.

  • Jika pemisah tidak terlihat, masukkan encoding Unicode-nya. Contoh: \u001b dan \u007c.

Yes

,

lineDelimiter

Pemisah baris yang digunakan untuk membaca data.

Catatan

Parameter ini hanya berlaku ketika fileFormat diatur ke text.

No

N/A

compress

Jenis kompresi untuk file teks. Secara default, parameter ini dibiarkan kosong, yang berarti tidak ada kompresi yang diterapkan. Jenis kompresi yang didukung adalah gzip, bzip2, dan zip.

No

No compression

encoding

Konfigurasi encoding untuk membaca file.

No

utf-8

nullFormat

String standar tidak dapat digunakan untuk mendefinisikan null (null pointer) dalam file teks. Sistem sinkronisasi data menyediakan nullFormat untuk mendefinisikan string mana yang dapat merepresentasikan null. Contoh:

  • Jika Anda mengatur nullFormat:"null", ini setara dengan "karakter terlihat". Jika data sumber adalah null, sistem sinkronisasi data memperlakukannya sebagai field null.

  • Jika Anda mengatur nullFormat:"\u0001", ini setara dengan "karakter tak terlihat". Jika data sumber adalah string "\u0001", sistem sinkronisasi data memperlakukannya sebagai field null.

  • Jika Anda tidak menentukan parameter "nullFormat", ini setara dengan "tidak dikonfigurasi", yang berarti data sumber ditulis ke tujuan apa adanya tanpa konversi apa pun.

No

N/A

skipHeader

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

  • True: Header dibaca saat data disinkronkan dari sumber data.

  • False: Header tidak dibaca saat data disinkronkan dari sumber data.

Catatan

skipHeader tidak didukung dalam mode file terkompresi.

No

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 dan menentukan deskripsi tipe penyimpanan Parquet. Pastikan konfigurasi keseluruhan sesuai dengan sintaks JSON setelah Anda menentukan parquetSchema.

message MessageTypeName {
Required or not, DataType, ColumnName;
......................;
}

Format konfigurasi parquetSchema dijelaskan sebagai berikut:

  • Nama MessageType: Tentukan nama.

  • Wajib atau tidak: required menunjukkan bahwa field tidak boleh kosong, dan optional menunjukkan bahwa field boleh kosong. Kami menyarankan agar Anda mengatur semua field sebagai optional.

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

  • Setiap pengaturan kolom dalam baris harus diakhiri dengan titik koma, termasuk baris terakhir.

Contoh berikut menunjukkan konfigurasinya.

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

No

N/A

csvReaderConfig

Konfigurasi parameter untuk membaca file CSV. Nilainya bertipe Map. CsvReader digunakan untuk membaca file CSV. Jika parameter ini tidak dikonfigurasi, nilai default akan digunakan.

No

N/A

maxRetryTimes

Jumlah maksimum percobaan ulang ketika pengunduhan file gagal.

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

  • Parameter ini hanya dapat dikonfigurasi dalam mode editor kode. Tidak didukung di Antarmuka tanpa kode.

No

0

retryIntervalSeconds

Interval percobaan ulang ketika pengunduhan file gagal. Satuan: detik.

Catatan

Parameter ini hanya dapat dikonfigurasi dalam mode editor kode. Tidak didukung di Antarmuka tanpa kode.

No

5

Demo skrip Writer

Contoh berikut menunjukkan konfigurasi mode skrip untuk menulis data ke Azure Blob Storage. Sisi reader menggunakan stream sebagai placeholder. Gantilah dengan konfigurasi sumber data asli yang sebenarnya.

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "azureblob",
      "parameter": {
        "datasource": "",
        "fileFormat": "csv",
        "object": "dir/example.csv",
        "fieldDelimiter": ",",
        "lineDelimiter": "\n",
        "encoding": "UTF-8",
        "nullFormat": "null",
        "dateFormat": "yyyy-MM-dd",
        "writeMode": "truncate",
        "maxFileSize": 100,
        "writeSingleObject": false
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  },
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parameter skrip Writer

Parameter

Description

Required

Default value

datasource

Nama sumber data. Mode skrip memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang Anda tambahkan. Sumber data harus dikonfigurasi dengan URL SAS dan signature (sig) dari kontainer Azure Blob Storage.

Yes

N/A

object

Nama file tempat Azure Blob Storage Writer menulis data, termasuk awalan jalur. Direktori disimulasikan dengan menggunakan nama file, dan pemisahnya adalah garis miring (/).

  • Jika Anda menggunakan "object": "datax.csv", objek yang ditulis dimulai dengan datax. Saat beberapa file ditulis, string UUID acak ditambahkan sebagai akhiran.

  • Jika Anda menggunakan "object": "cdo/datax.csv", objek yang ditulis dimulai dengan cdo/datax.

  • Jika Anda tidak ingin akhiran UUID acak, konfigurasikan "writeSingleObject": "true". Untuk informasi selengkapnya, lihat deskripsi writeSingleObject.

Yes

N/A

writeMode

Menentukan cara Azure Blob Storage Writer memproses data yang sudah ada sebelum menulis:

  • truncate: Sebelum menulis, semua objek yang namanya sesuai dengan awalan nama objek yang ditentukan akan dihapus. Contohnya, jika Anda mengatur "object":"abc", semua objek yang namanya dimulai dengan abc akan dihapus.

  • append: Tidak ada pemrosesan sebelum menulis. Data langsung ditulis menggunakan nama objek. Saat beberapa file ditulis, akhiran UUID acak digunakan untuk mencegah konflik nama file.

  • nonConflict: Sebelum menulis, sistem memeriksa apakah objek yang ditentukan sudah ada. Jika objek tersebut ada, sistem akan mengembalikan error.

Yes

None

writeSingleObject

Menentukan apakah data akan ditulis ke satu file:

  • true: Semua task konkuren menulis ke objek yang sama menggunakan upload chunked Block Blob. Tidak ada file kosong yang dihasilkan ketika tidak ada data yang dibaca.

  • false: Setiap task konkuren menulis ke objek terpisah. Akhiran UUID acak ditambahkan ke nama file. Ketika tidak ada data yang dibaca, file kosong yang hanya berisi header file akan dihasilkan jika parameter header dikonfigurasi. Jika tidak, tidak ada file yang dihasilkan.

Catatan

Parameter ini tidak berlaku saat Anda menulis data dalam format Parquet atau ORC.

No

false

fileFormat

Format penulisan file. Nilai yang valid:

  • csv: Hanya format CSV ketat yang didukung. Jika data yang akan ditulis berisi pemisah kolom, data tersebut akan di-escape berdasarkan sintaks escape CSV. Karakter escape-nya adalah tanda kutip ganda (").

  • text: Data yang akan ditulis dipisahkan menggunakan pemisah kolom. Jika data yang akan ditulis berisi pemisah kolom, tidak ada escaping yang dilakukan.

  • jsonl: Data ditulis dalam format JSON Lines, dengan satu objek JSON per baris.

  • parquet: Anda harus menambahkan parameter parquetSchema untuk mendefinisikan tipe data. Hanya mode skrip yang didukung.

  • orc: Anda harus beralih ke mode skrip untuk konfigurasi.

No

text

fieldDelimiter

Pemisah kolom yang digunakan untuk menulis. Parameter ini berlaku untuk format csv dan text. Jika Anda tidak menentukan parameter ini, pemisah default koma (,) akan digunakan. Jika pemisah tidak terlihat, masukkan encoding Unicode, seperti \u001b atau \u007c.

No

,

encoding

Encoding file output.

No

utf-8

nullFormat

Null (pointer kosong) tidak dapat didefinisikan menggunakan string standar dalam file teks. Sistem sinkronisasi data menyediakan parameter nullFormat untuk mendefinisikan string mana yang dapat dianggap sebagai null. Misalnya, jika Anda mengonfigurasi nullFormat:"null" dan data sumber adalah null, sistem sinkronisasi data memperlakukan field tersebut sebagai field null.

No

\N

dateFormat

Format yang digunakan untuk memformat data bertipe tanggal.

No

yyyy-MM-dd HH:mm:ss

header

Header file output. Contoh: ["id", "name", "age"]. Parameter ini berlaku untuk format csv dan text. Header ditulis di awal blok pertama.

No

N/A

blockSizeInMB

Ukuran setiap blok dalam MB saat data Block Blob diunggah dalam blok. Azure Block Blob mendukung maksimal 50.000 blok, dan ukuran setiap blok berkisar antara 4 MB hingga 100 MB. Jika jumlah blok melebihi batas, Anda dapat meningkatkan ukuran blok untuk mendukung unggahan file yang lebih besar. Catatan * Parameter ini hanya didukung dalam mode advanced, bukan dalam mode Antarmuka tanpa kode. * Parameter ini hanya berlaku untuk format text, csv, dan jsonl.

No

64

parquetSchema

Parameter ini diperlukan saat data ditulis dalam format file Parquet. Parameter ini menjelaskan struktur file tujuan dan hanya berlaku ketika fileFormat diatur ke parquet. Formatnya adalah sebagai berikut.

Format konfigurasi parquetSchema dijelaskan sebagai berikut:

  • Nama MessageType: Masukkan nama.

  • Wajib atau tidak: required menunjukkan bahwa field tidak boleh null, dan optional menunjukkan bahwa field boleh null. Kami menyarankan agar Anda mengatur semua field sebagai 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 pengaturan kolom dalam baris harus diakhiri dengan titik koma, termasuk baris terakhir.

Contoh berikut menunjukkan konfigurasi sampel.

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

No

N/A

column

Informasi kolom tujuan yang dikonfigurasi saat menulis data dalam format Parquet atau ORC. Format: {"name":"nama kolom","type":"tipe kolom"}.

No

N/A

compress

Format kompresi untuk menulis file Parquet atau ORC, seperti SNAPPY dan NONE. Kompresi tidak didukung untuk format text, CSV, atau JSONL.

No

N/A

maxRetryTimes

Jumlah maksimum percobaan ulang saat terjadi kegagalan penulisan, termasuk mengunggah blok, meng-commit daftar blok, dan menghapus objek. Atur parameter ini ke 0 untuk menonaktifkan percobaan ulang. Catatan Parameter ini hanya tersedia dalam mode skrip dan tidak dapat dikonfigurasi dalam mode Antarmuka tanpa kode.

No

30

retryIntervalSeconds

Interval antar percobaan ulang saat terjadi kegagalan penulisan. Satuan: detik. Parameter ini hanya tersedia dalam mode skrip dan tidak dapat dikonfigurasi dalam mode Antarmuka tanpa kode.

No

5

requestTimeoutSeconds

Batas waktu untuk satu permintaan. Satuan: detik. Parameter ini hanya tersedia dalam mode skrip dan tidak dapat dikonfigurasi dalam mode Antarmuka tanpa kode.

No

60