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:
|
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
-
Untuk prosedurnya, lihat Configure a synchronization task in the codeless UI dan Configure a synchronization task by using the code editor.
-
Untuk daftar lengkap parameter dan demo skrip untuk editor kode, lihat Appendix: Script demo and parameter description di bawah.
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: |
Yes |
N/A |
|
object |
Jalur file. Parameter ini digunakan ketika fileFormat diatur ke csv, text, json, atau jsonl. Catatan
Parameter ini mendukung wildcard Contohnya, untuk menyinkronkan file |
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 Contohnya, untuk menyinkronkan file |
Yes Diperlukan ketika fileFormat diatur ke parquet atau orc. |
None |
|
column |
Daftar bidang yang akan dibaca. Parameter type menentukan tipe data dari sumber data:
Secara default, Anda dapat membaca semua data sebagai tipe STRING. Contoh konfigurasi:
Anda dapat menentukan informasi bidang kolom. Contoh konfigurasi:
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
|
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 |
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:
|
No |
N/A |
|
skipHeader |
Untuk file CSV, gunakan skipHeader untuk menentukan apakah header akan dibaca.
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.
Format konfigurasi parquetSchema dijelaskan sebagai berikut:
Contoh berikut menunjukkan konfigurasinya.
|
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
|
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 (/).
|
Yes |
N/A |
|
writeMode |
Menentukan cara Azure Blob Storage Writer memproses data yang sudah ada sebelum menulis:
|
Yes |
None |
|
writeSingleObject |
Menentukan apakah data akan ditulis ke satu file:
Catatan
Parameter ini tidak berlaku saat Anda menulis data dalam format Parquet atau ORC. |
No |
false |
|
fileFormat |
Format penulisan file. Nilai yang valid:
|
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 |
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 |
No |
\N |
|
dateFormat |
Format yang digunakan untuk memformat data bertipe tanggal. |
No |
|
|
header |
Header file output. Contoh: |
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:
Contoh berikut menunjukkan konfigurasi sampel.
|
No |
N/A |
|
column |
Informasi kolom tujuan yang dikonfigurasi saat menulis data dalam format Parquet atau ORC. Format: |
No |
N/A |
|
compress |
Format kompresi untuk menulis file Parquet atau ORC, seperti |
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 |