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:
|
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
Untuk informasi lebih lanjut, lihat Konfigurasikan task di Antarmuka tanpa kode dan Konfigurasikan task di editor kode.
Untuk semua parameter dan contoh skrip editor kode, lihat bagian Lampiran: Contoh skrip dan deskripsi parameter.
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: | Ya | Tidak ada |
object | Jalur file. Parameter ini digunakan ketika `fileFormat` diatur ke `csv` atau `text`. Catatan Parameter ini mendukung karakter wildcard Misalnya, untuk menyinkronkan file | 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 Misalnya, untuk menyinkronkan file | 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. Anda dapat menentukan informasi bidang kolom. Konfigurasinya sebagai berikut. 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
| 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 | 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:
| Tidak | Tidak ada |
skipHeader | Untuk file CSV, gunakan parameter skipHeader untuk menentukan apakah header tabel akan dibaca.
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`. Format `parquetSchema` adalah sebagai berikut:
Kode berikut memberikan contoh konfigurasi. | 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
| 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 |