OSS-HDFS (JindoFS) adalah layanan penyimpanan danau data cloud-native. DataWorks menyediakan OSS-HDFS Reader dan OSS-HDFS Writer untuk membaca data dari dan menulis data ke sumber data OSS-HDFS. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke sumber data OSS-HDFS.
Batasan
Pembacaan data batch
Ketika menggunakan OSS-HDFS Reader, perhatikan hal-hal berikut:
Koneksi jaringan antara grup sumber daya dan OSS-HDFS kompleks. Disarankan untuk menggunakan grup sumber daya eksklusif untuk Data Integration saat menjalankan tugas sinkronisasi data dengan sumber data OSS-HDFS. Pastikan grup sumber daya eksklusif Anda dapat mengakses jaringan tempat sumber data OSS-HDFS berada.
OSS-HDFS Reader mendukung fitur-fitur berikut:
Mendukung format file teks, CSV, ORC, dan Parquet. Data dalam file-file ini harus diatur sebagai tabel dua dimensi logis.
Membaca data berbagai jenis dan mendukung konstanta.
Mendukung pembacaan rekursif serta wildcard asterisk (
*) dan tanda tanya (?).Menggunakan thread paralel untuk membaca data dari beberapa file.
Saat ini, OSS-HDFS Reader tidak dapat membaca data dari satu file menggunakan thread paralel karena metode sharding internal.
Penulisan data batch
Perhatikan hal-hal berikut ketika menggunakan OSS-HDFS Writer:
OSS-HDFS Writer hanya dapat menulis file teks, ORC, dan Parquet yang menyimpan tabel dua dimensi logis ke OSS-HDFS.
Untuk menulis file teks ke OSS-HDFS, pastikan pemisah dalam file sesuai dengan yang ada di tabel Hive yang ingin diasosiasikan dengan file tersebut. Dengan cara ini, kolom-kolom dalam file yang ditulis ke OSS-HDFS dapat diasosiasikan dengan kolom-kolom dalam tabel Hive.
Penulisan data real-time
Penulisan data real-time didukung.
Anda dapat menulis data dari OSS-HDFS ke Hudi 0.14.x secara real-time.
Cara kerjanya
OSS-HDFS Writer menulis file ke OSS-HDFS melalui langkah-langkah berikut:
Membuat direktori sementara yang belum ada di OSS-HDFS berdasarkan parameter path yang ditentukan.
Direktori sementara ditentukan dalam format path_Sufiks acak.
Menulis file yang diperoleh dari reader ke direktori sementara.
Memindahkan file dari direktori sementara ke direktori yang ditentukan setelah semua file selesai ditulis. Nama file yang akan ditulis ke OSS-HDFS harus berbeda dari nama file yang sudah ada di OSS-HDFS.
Menghapus direktori sementara. Jika OSS-HDFS Writer gagal terhubung ke OSS-HDFS karena gangguan jaringan, Anda harus menghapus direktori sementara dan semua file di dalamnya secara manual.
Pemetaan tipe data
Pembacaan data batch
Tabel berikut mencantumkan pemetaan tipe data berdasarkan mana OSS-HDFS Reader mengonversi tipe data dalam file Parquet, ORC, teks, dan CSV.
Kategori | Tipe data OSS-HDFS |
Integer | TINYINT, SMALLINT, INT, dan BIGINT |
Floating point | FLOAT, DOUBLE, dan DECIMAL |
String | STRING, CHAR, dan VARCHAR |
Tanggal dan waktu | DATE dan TIMESTAMP |
Boolean | BOOLEAN |
LONG: Data bertipe integer dalam file OSS-HDFS, seperti 123456789.
DOUBLE: Data bertipe floating point dalam file OSS-HDFS, seperti 3.1415.
BOOLEAN: Data bertipe Boolean dalam file OSS-HDFS, seperti true atau false. Data tidak peka huruf besar/kecil.
DATE: Data bertipe tanggal dan waktu dalam file OSS-HDFS, seperti 2014-12-31 00:00:00.
Penulisan data batch
OSS-HDFS Writer dapat menulis file teks, ORC, atau Parquet ke direktori tertentu di OSS-HDFS.
Tabel berikut mencantumkan pemetaan tipe data berdasarkan mana OSS-HDFS Writer mengonversi tipe data.
Kategori | Tipe data OSS-HDFS |
Integer | TINYINT, SMALLINT, INT, dan BIGINT |
Floating point | FLOAT dan DOUBLE |
String | CHAR, VARCHAR, dan STRING |
Boolean | BOOLEAN |
Tanggal dan waktu | DATE dan TIMESTAMP |
Mengembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian-bagian berikut. Untuk informasi tentang pengaturan parameter, lihat infotip setiap parameter pada tab konfigurasi tugas.
Menambahkan sumber data
Sebelum mengonfigurasi tugas sinkronisasi data untuk menyinkronkan data dari atau ke sumber data tertentu, Anda harus menambahkan sumber data ke DataWorks. Untuk informasi lebih lanjut, lihat Tambahkan dan Kelola Sumber Data.
Mengonfigurasi tugas sinkronisasi batch untuk menyinkronkan data satu tabel
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode dan Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
Mengonfigurasi tugas sinkronisasi real-time untuk menyinkronkan data satu tabel
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Buat Tugas Sinkronisasi Real-Time untuk Menyinkronkan Data Inkremental dari Satu Tabel dan Konfigurasikan Tugas Sinkronisasi Real-Time di DataStudio.
Konfigurasikan pengaturan sinkronisasi untuk menerapkan sinkronisasi real-time data penuh atau inkremental dalam database
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi di Data Integration.
Lampiran: Kode dan parameter
Lampiran: Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, Anda harus mengonfigurasi parameter untuk reader dan writer sumber data terkait sesuai dengan persyaratan format dalam editor kode. Untuk informasi lebih lanjut tentang persyaratan format, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan detail konfigurasi parameter untuk reader dan writer dalam editor kode.
Kode untuk OSS-HDFS Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oss_hdfs",// Nama Plugin.
"parameter": {
"path": "",// Path file dari mana Anda ingin membaca data.
"datasource": "",// Nama sumber data.
"column": [
{
"index": 0,// Indeks kolom dalam file sumber. Indeks dimulai dari 0, yang menunjukkan bahwa OSS-HDFS Reader membaca data dari kolom pertama file sumber.
"type": "string"// Tipe bidang.
},
{
"index": 1,
"type": "long"
},
{
"index": 2,
"type": "double"
},
{
"index": 3,
"type": "boolean"
},
{
"format": "yyyy-MM-dd HH:mm:ss", // Format waktu.
"index": 4,
"type": "date"
}
],
"fieldDelimiter": ",",// Pemisah kolom.
"encoding": "UTF-8",// Format encoding.
"fileFormat": ""// Format file.
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""// Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed": {
"concurrent": 3,// Jumlah maksimum thread paralel.
"throttle": true // Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}Parameter dalam kode untuk OSS-HDFS Reader
Parameter | Deskripsi | Diperlukan | Nilai default |
path | Path file dari mana Anda ingin membaca data.
Penting
| Ya | Tidak ada nilai default |
fileFormat | Format file dari mana Anda ingin membaca data. OSS-HDFS Reader secara otomatis mengidentifikasi format file dan menggunakan kebijakan baca terkait. Sebelum OSS-HDFS Reader membaca data, ia memeriksa apakah semua file di path yang ditentukan cocok dengan format yang ditentukan oleh parameter fileFormat. Jika format file tidak cocok dengan format yang ditentukan oleh parameter fileFormat, tugas sinkronisasi data gagal. Nilai valid dari parameter fileFormat:
| Ya | Tidak ada nilai default |
column | Nama kolom dari mana Anda ingin membaca data. Secara default, OSS-HDFS Reader membaca semua data sebagai string. Dalam hal ini, atur parameter ini ke Anda juga dapat mengonfigurasi parameter column dalam format berikut:
Catatan Untuk parameter column, Anda harus mengonfigurasi field type dan salah satu dari field index dan value. | Ya | Tidak ada nilai default |
fieldDelimiter | Pemisah kolom dari mana Anda ingin membaca data. Jika file sumber adalah file teks, Anda harus menentukan pemisah kolom. Jika Anda tidak menentukan pemisah kolom, OSS-HDFS Reader menggunakan koma (,) sebagai pemisah kolom secara default. Jika file sumber adalah file ORC atau Parquet, Anda tidak perlu menentukan pemisah kolom. | Tidak | , |
encoding | Format encoding file dari mana Anda ingin membaca data. | Tidak | utf-8 |
nullFormat | String yang mewakili pointer null. Tidak ada string standar yang dapat mewakili pointer null dalam file teks. Anda dapat menggunakan parameter ini untuk menentukan string mana yang mewakili pointer null. Contohnya, jika Anda mengatur parameter ini ke | Tidak | Tidak ada nilai default |
compress | Format kompresi. Format kompresi berikut didukung: GZIP, BZIP2, dan Snappy. | Tidak | Tidak ada nilai default |
Kode untuk OSS-HDFS Writer
{
"type": "job",
"version": "2.0",// Nomor versi.
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "oss_hdfs",// Nama Plugin.
"parameter": {
"path": "",// Direktori di OSS-HDFS ke mana file ditulis.
"fileName": "",// Awalan nama file yang ingin Anda tulis ke OSS-HDFS.
"compress": "",// Format kompresi file yang ingin Anda tulis ke OSS-HDFS.
"datasource": "",// Nama sumber data.
"column": [
{
"name": "col1",// Nama kolom.
"type": "string"// Tipe data kolom.
},
{
"name": "col2",
"type": "int"
},
{
"name": "col3",
"type": "double"
},
{
"name": "col4",
"type": "boolean"
},
{
"name": "col5",
"type": "date"
}
],
"writeMode": "",// Mode penulisan.
"fieldDelimiter": ",",// Pemisah kolom.
"encoding": "",// Format encoding.
"fileFormat": "text"// Format file yang ingin Anda tulis ke OSS-HDFS.
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""// Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed": {
"concurrent": 3,// Jumlah maksimum thread paralel.
"throttle": false // Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}Parameter dalam kode untuk OSS-HDFS Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
fileFormat | Format file dari mana Anda ingin membaca data.
| Ya | Tidak ada nilai default |
path | Direktori di OSS-HDFS ke mana Anda ingin menulis file. OSS-HDFS Writer menulis beberapa file ke direktori berdasarkan konfigurasi thread paralel. Untuk mengasosiasikan kolom dalam file dengan kolom dalam tabel Hive, atur parameter path ke jalur penyimpanan tabel Hive di OSS-HDFS. Misalnya, Anda dapat menentukan jalur penyimpanan untuk gudang data Hive. | Ya | Tidak ada nilai default |
fileName | Awalan nama file yang ingin Anda tulis ke OSS-HDFS. Sufiks acak ditambahkan ke awalan yang ditentukan untuk membentuk nama file sebenarnya yang digunakan oleh setiap thread. | Ya | Tidak ada nilai default |
column | Nama kolom ke mana Anda ingin menulis data. Anda tidak dapat menulis data hanya ke beberapa kolom dalam tabel Hive. Untuk mengasosiasikan kolom dalam file dengan kolom dalam tabel Hive, konfigurasikan parameter name dan type untuk setiap kolom. Parameter name menentukan nama kolom, dan parameter type menentukan tipe data kolom. Anda dapat mengonfigurasi parameter column dalam format berikut: | Diperlukan jika parameter fileFormat diatur ke text atau orc | Tidak ada nilai default |
writeMode | Mode penulisan. Nilai valid:
| Ya | Tidak ada nilai default |
fieldDelimiter | Pemisah kolom yang digunakan dalam file yang ingin Anda tulis ke OSS-HDFS. Catatan Hanya pemisah satu karakter yang didukung. Jika Anda menentukan pemisah multi-karakter, kesalahan akan dilaporkan. | Diperlukan jika parameter fileFormat diatur ke text atau orc | Tidak ada nilai default |
compress | Format kompresi file yang ingin Anda tulis ke OSS-HDFS. Secara default, parameter ini dibiarkan kosong, yang menunjukkan bahwa file tidak dikompresi. Untuk file teks, format kompresi GZIP dan BZIP2 didukung. | Tidak | Tidak ada nilai default |
encoding | Format encoding file yang ingin Anda tulis ke OSS-HDFS. | Tidak | utf-8 |
parquetSchema | Skema file Parquet yang ingin Anda tulis ke OSS-HDFS. Parameter ini tersedia hanya jika parameter fileFormat diatur ke parquet. Format: Parameter:
Catatan Setiap baris, termasuk baris terakhir, harus diakhiri dengan titik koma (;). Contoh: | Tidak | Tidak ada nilai default |