Sumber data OSS menyediakan akses baca dan tulis ke OSS. Topik ini menjelaskan cara DataWorks mendukung sinkronisasi data OSS.
Tipe bidang yang didukung dan batasan
Baca data batch
OSS Reader membaca data dari OSS dan mengonversinya ke format yang dapat diproses oleh Data Integration. Karena OSS merupakan layanan penyimpanan data tidak terstruktur, reader mendukung fitur-fitur berikut.
|
Didukung |
Tidak didukung |
|
|
-
Saat menyiapkan data di OSS, file CSV harus sesuai dengan format CSV standar. Misalnya, tanda kutip ganda (") dalam kolom harus di-escape dengan menggantinya menjadi dua tanda kutip ganda (""), karena jika tidak, file tersebut mungkin terpisah secara salah. Jika file berisi beberapa pemisah, disarankan untuk menggunakan tipe teks.
-
OSS adalah sumber data tidak terstruktur yang menyimpan data dalam bentuk file. Sebelum melakukan sinkronisasi data, pastikan struktur bidang data yang akan disinkronkan sesuai dengan ekspektasi Anda. Jika struktur data sumber berubah, Anda harus mengonfirmasi ulang struktur bidang dalam konfigurasi Tugas. Jika tidak, kesalahan sinkronisasi data dapat terjadi.
Tulis data batch
OSS Writer mengonversi data dari protokol Data Integration menjadi file teks di OSS. Karena OSS merupakan layanan penyimpanan data tidak terstruktur, writer mendukung fitur-fitur berikut.
|
Didukung |
Tidak didukung |
|
|
|
Kategori |
Tipe Kolom Data Integration |
|
Integer |
LONG |
|
String |
STRING |
|
Floating-point |
DOUBLE |
|
Boolean |
BOOLEAN |
|
Tanggal dan waktu |
DATE |
Tulis real-time
-
Mendukung kemampuan penulisan real-time.
-
Penulisan real-time single-table ke data lake didukung: Hudi (0.12.x), Paimon, dan Iceberg.
Buat sumber data
Sebelum mengembangkan Tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Konfigurasi sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
-
Untuk membuat sumber data OSS lintas Akun Alibaba Cloud, Anda harus memberikan izin yang diperlukan ke akun terkait. Untuk informasi lebih lanjut, lihat Gunakan kebijakan bucket untuk memberikan akses lintas akun ke OSS.
-
Jika Anda menggunakan mode otorisasi berbasis Peran RAM untuk mengonfigurasi sumber data OSS, lihat Otorisasi berbasis Peran RAM: Konfigurasi sumber data untuk informasi lebih lanjut.
-
Untuk membuat sumber data OSS lintas wilayah, disarankan menggunakan Titik akhir publik. Untuk informasi lebih lanjut, lihat Domain akses dan konektivitas jaringan.
Pengembangan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi Tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi tugas sinkronisasi batch single-table
-
Untuk prosedurnya, lihat Konfigurasi Antarmuka tanpa kode dan Konfigurasi mode skrip.
-
Untuk semua parameter dan demo skrip yang tersedia dalam mode skrip, lihat Lampiran: demo skrip dan deskripsi parameter di bawah ini.
Panduan konfigurasi tugas sinkronisasi real-time single-table
Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi real-time single-table.
Panduan konfigurasi sinkronisasi seluruh database
Untuk prosedurnya, lihat Kemampuan Tugas Sinkronisasi Batch Seluruh Database dan Kemampuan Tugas Sinkronisasi Real-time Seluruh Database.
FAQ
Apakah ada batas jumlah file saat membaca file OSS?
Bagaimana cara menangani data kotor saat membaca file CSV dengan pemisah multi-karakter?
Lampiran: Demo skrip dan deskripsi parameter
Konfigurasi tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi Tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi Tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader: Contoh umum
Contoh berikut menunjukkan skrip umum untuk OSS Reader.
{
"type":"job",
"version":"2.0",//Nomor versi.
"steps":[
{
"stepType":"oss",//Nama plug-in.
"parameter":{
"nullFormat":"",//String yang merepresentasikan nilai null.
"compress":"",//Jenis kompresi teks.
"datasource":"",//Sumber data.
"column":[//Kolom.
{
"index":0,//Indeks kolom.
"type":"string"//Tipe data.
},
{
"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"
}
],
"skipHeader":"",//File mirip CSV mungkin berisi baris header. Atur parameter ini untuk melewati header.
"encoding":"",//Format encoding.
"fieldDelimiter":",",//Pemisah kolom.
"fileFormat": "",//Tipe teks.
"object":[]//Awalan objek.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":""//Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,//Jika throttle diatur ke false, parameter mbps tidak berlaku, yang berarti pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent":1 //Jumlah thread konkuren.
"mbps":"12",//Laju pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Demo skrip Reader: Membaca file ORC atau Parquet dari OSS
OSS Reader membaca file ORC atau Parquet dari OSS dengan menggunakan kembali HDFS Reader. Selain parameter OSS Reader yang sudah ada, parameter tambahan berikut ditambahkan: Path (ORC) dan FileFormat (ORC, Parquet) .
-
Contoh berikut menunjukkan cara membaca file ORC dari OSS.
{ "stepType": "oss", "parameter": { "datasource": "", "fileFormat": "orc", "path": "/tests/case61/orc__691b6815_9260_4037_9899_****", "column": [ { "index": 0, "type": "long" }, { "index": "1", "type": "string" }, { "index": "2", "type": "string" } ] } } -
Contoh berikut menunjukkan cara membaca file Parquet dari OSS.
{ "type":"job", "version":"2.0", "steps":[ { "stepType":"oss", "parameter":{ "nullFormat":"", "compress":"", "fileFormat":"parquet", "path":"/*", "parquetSchema":"message m { optional BINARY registration_dttm (UTF8); optional Int64 id; optional BINARY first_name (UTF8); optional BINARY last_name (UTF8); optional BINARY email (UTF8); optional BINARY gender (UTF8); optional BINARY ip_address (UTF8); optional BINARY cc (UTF8); optional BINARY country (UTF8); optional BINARY birthdate (UTF8); optional DOUBLE salary; optional BINARY title (UTF8); optional BINARY comments (UTF8); }", "column":[ { "index":"0", "type":"string" }, { "index":"1", "type":"long" }, { "index":"2", "type":"string" }, { "index":"3", "type":"string" }, { "index":"4", "type":"string" }, { "index":"5", "type":"string" }, { "index":"6", "type":"string" }, { "index":"7", "type":"string" }, { "index":"8", "type":"string" }, { "index":"9", "type":"string" }, { "index":"10", "type":"double" }, { "index":"11", "type":"string" }, { "index":"12", "type":"string" } ], "skipHeader":"false", "encoding":"UTF-8", "fieldDelimiter":",", "fieldDelimiterOrigin":",", "datasource":"wpw_demotest_oss", "envType":0, "object":[ "wpw_demo/userdata1.parquet" ] }, "name":"Reader", "category":"reader" }, { "stepType":"odps", "parameter":{ "partition":"dt=${bizdate}", "truncate":true, "datasource":"0_odps_wpw_demotest", "envType":0, "column":[ "id" ], "emptyAsNull":false, "table":"wpw_0827" }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"" }, "locale":"zh_CN", "speed":{ "throttle":false, "concurrent":2 } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Demo skrip Reader: Membaca file JSONLine dari OSS, mengurai data JSON, dan menulis data ke tujuan
Contoh berikut menunjukkan cara membaca data JSONLine dari OSS, mengurai data JSON, melakukan vektorisasi pada bidang tertentu dalam data JSON, lalu menulis data ke Milvus:
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oss",
"parameter": {
"datasource": "${OSS data source name}",
"column": [
{
"name": "chunk_text",
"index": 0,
"type": "string"
}
],
"fieldDelimiter": ",",
"encoding": "UTF-8",
"fileFormat": "jsonl",
"object": [
"embedding/chunk1.jsonl"
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "json-extracting",
"parameter": {
"column": [
{
"name": "text",
"fromColumn": "chunk_text",
"jsonPath": "$.text",
"type": "STRING",
"nullOrInvalidDataAction": "DIRTY_DATA"
}
]
},
"name": "jsonextract",
"category": "flatmap"
},
{
"stepType": "embedding-transformer",
"parameter": {
"modelProvider": "bailian",
"modelName": "text-embedding-v4",
"apiKey": "${the AccessKey that you want to use}",
"embeddingColumns": {
"sourceColumnNames": [
"text"
],
"embeddingColumnName": "my_vector"
},
"batchSize": 8,
"dimension": 1024
},
"name": "embedding",
"category": "flatmap"
},
{
"stepType": "milvus",
"parameter": {
"schemaCreateMode": "ignore",
"enableDynamicSchema": true,
"datasource": "${Milvus data source name}",
"column": [
{
"name": "my_vector",
"type": "FloatVector",
"dimension": "1024",
"elementType": "None",
"maxLength": "65535"
},
{
"name": "text",
"type": "VarChar",
"elementType": "None",
"maxLength": "65535"
}
],
"collection": "yunshi_vector_07171130",
"writeMode": "insert",
"batchSize": 1024,
"columnMapping": [
{
"sourceColName": "my_vector",
"dstColName": "my_vector"
},
{
"sourceColName": "text",
"dstColName": "text"
}
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 1
}
}
}
Parameter skrip Reader
|
Parameter |
Deskripsi |
Wajib |
Nilai default |
|
datasource |
Nama sumber data. Mode skrip mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. |
Ya |
N/A |
|
Object |
Parameter ini menentukan satu atau beberapa objek untuk disinkronkan dari OSS. Tiga metode konfigurasi didukung: jalur eksplisit, jalur wildcard, dan jalur parameter dinamis. 1. Metode konfigurasi
Penting
2. Mekanisme baca konkuren dan kinerja Metode konfigurasi secara langsung menentukan kinerja konkurensi ekstraksi data:
|
Ya |
Tidak ada |
|
parquetSchema |
Parameter ini digunakan saat Anda membaca data OSS dalam format file Parquet. Parameter ini hanya berlaku ketika fileFormat diatur ke parquet, dan menentukan definisi tipe penyimpanan Parquet. Pastikan konfigurasi keseluruhan sesuai dengan sintaks JSON setelah Anda menentukan parquetSchema.
Format konfigurasi parquetSchema dijelaskan sebagai berikut:
Contoh berikut menunjukkan konfigurasi sampel.
|
Tidak |
Tidak ada |
|
column |
Daftar bidang yang akan dibaca. type menentukan tipe data sumber data, index menentukan nomor kolom (berbasis nol) dalam file teks yang sesuai dengan kolom saat ini, dan value menentukan bahwa kolom saat ini adalah konstanta. Alih-alih membaca data dari file sumber, sistem secara otomatis menghasilkan kolom berdasarkan nilai 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 kolom yang Anda tentukan, parameter type wajib, dan Anda harus menentukan salah satu antara index atau value. |
Ya |
Semua data dibaca sebagai tipe STRING. |
|
fileFormat |
Tipe file. Tipe file objek OSS sumber. Nilai yang valid: csv, text, parquet, orc, json, dan jsonl. Format csv dan text mendukung pemisah kustom. |
Ya |
csv |
|
fieldDelimiter |
Pemisah bidang untuk membaca data. Catatan
Saat OSS Reader membaca data, Anda harus menentukan pemisah bidang. Jika tidak ditentukan, koma (,) digunakan secara default. Koma (,) juga merupakan nilai default dalam konfigurasi konsol. Jika pemisah tidak terlihat, masukkan encoding Unicode-nya. Misalnya, \u001b atau \u007c. |
Ya |
, |
|
lineDelimiter |
Pemisah baris untuk membaca data. Catatan
Parameter ini hanya berlaku saat fileFormat diatur ke text. |
Tidak |
N/A |
|
compress |
Jenis kompresi untuk file teks. Secara default, parameter ini dibiarkan kosong, yang menunjukkan bahwa data tidak dikompresi. Nilai yang valid: gzip, bzip2, dan zip. |
Tidak |
Tidak ada kompresi |
|
encoding |
Encoding yang digunakan untuk membaca file. |
Tidak |
utf-8 |
|
nullFormat |
String standar tidak dapat digunakan untuk mendefinisikan null (null pointer) dalam file teks. Data Integration menyediakan parameter nullFormat untuk mendefinisikan string mana yang dapat merepresentasikan null. Contoh:
|
Tidak |
Tidak ada |
|
skipHeader |
File mirip CSV mungkin berisi baris header dengan judul kolom yang perlu dilewati. Secara default, header tidak dilewati. skipHeader tidak didukung dalam mode file terkompresi. |
Tidak |
false |
|
csvReaderConfig |
Konfigurasi untuk membaca file mirip CSV. Parameter ini bertipe MAP. CsvReader digunakan untuk membaca file mirip CSV dan mendukung berbagai konfigurasi. Jika parameter ini tidak ditentukan, nilai default digunakan. |
Tidak |
Tidak ada |
|
successOnNoObject |
Menentukan apakah tugas berakhir sukses saat tidak ada objek di jalur baca yang ditentukan. Jika parameter ini diatur ke false, tugas gagal. Jika diatur ke true, tugas berakhir sukses tanpa menulis data apa pun. Parameter ini berlaku untuk skenario sinkronisasi periodik di mana jalur sumber mungkin kosong. Dalam mode Antarmuka tanpa kode, parameter ini sesuai dengan "Allow Missing Source Files" dan hanya ditampilkan saat fileFormat diatur ke csv atau text. |
Tidak |
false |
|
minLastModified |
Menentukan bahwa hanya file yang waktu modifikasi terakhirnya sama dengan atau lebih baru dari waktu yang ditentukan yang disinkronkan. Formatnya adalah |
Tidak |
N/A |
|
maxLastModified |
Hanya menyinkronkan file yang waktu modifikasi terakhirnya lebih awal dari waktu yang ditentukan. Formatnya adalah |
Tidak |
N/A |
Demo skrip Writer: Contoh umum
Berikut adalah contoh skrip umum untuk OSS Writer.
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"oss",// Nama plug-in.
"parameter":{
"nullFormat":"",// Format null yang disediakan oleh Data Integration, yang mendefinisikan string apa yang dapat merepresentasikan null.
"dateFormat":"",// Format tanggal.
"datasource":"",// Sumber data.
"writeMode":"",// Mode tulis.
"writeSingleObject":"false", // Menentukan apakah data yang disinkronkan ditulis ke satu file OSS.
"encoding":"",// Format encoding.
"fieldDelimiter":","// Pemisah kolom.
"fileFormat":"",// Format file.
"object":""// Awalan objek.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan bandwidth tidak dibatasi. Jika throttle diatur ke true, bandwidth dibatasi.
"concurrent":1, // Jumlah thread konkuren.
"mbps":"12"// Laju pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Demo skrip Writer: Menulis file ORC atau Parquet ke OSS
OSS mendukung penulisan file ORC atau Parquet dengan menggunakan kembali HDFS Writer. Selain parameter OSS Writer yang sudah ada, parameter konfigurasi tambahan seperti Path dan FileFormat ditambahkan. Untuk informasi tentang parameter ini, lihat HDFS Writer.
Berikut adalah contoh penulisan file ORC atau Parquet ke OSS:
Berikut hanya contoh. Modifikasi parameter berdasarkan nama dan tipe kolom aktual Anda. Jangan salin dan gunakan contoh ini secara langsung.
-
Menulis file ORC ke OSS
Untuk menulis file ORC, hanya mode skrip yang didukung. Anda harus beralih ke mode skrip untuk konfigurasi. Atur fileFormat ke
orc, atur path ke jalur file yang akan ditulis, dan konfigurasi column dalam format{"name":"nama kolom Anda","type": "tipe kolom Anda"}.Tipe ORC berikut didukung untuk penulisan:
Tipe bidang
Tulis batch ke OSS (format ORC)
TINYINT
Didukung
SMALLINT
Didukung
INT
Didukung
BIGINT
Didukung
FLOAT
Didukung
DOUBLE
Didukung
TIMESTAMP
Didukung
DATE
Didukung
VARCHAR
Didukung
STRING
Didukung
CHAR
Didukung
BOOLEAN
Didukung
DECIMAL
Didukung
BINARY
Didukung
{ "stepType": "oss", "parameter": { "datasource": "", "fileFormat": "orc", "path": "/tests/case61", "fileName": "orc", "writeMode": "append", "column": [ { "name": "col1", "type": "BIGINT" }, { "name": "col2", "type": "DOUBLE" }, { "name": "col3", "type": "STRING" } ], "writeMode": "append", "fieldDelimiter": "\t", "compress": "NONE", "encoding": "UTF-8" } } -
Menulis ke OSS dalam format Parquet
{ "stepType": "oss", "parameter": { "datasource": "", "fileFormat": "parquet", "path": "/tests/case61", "fileName": "test", "writeMode": "append", "fieldDelimiter": "\t", "compress": "SNAPPY", "encoding": "UTF-8", "parquetSchema": "message test { required int64 int64_col;\n required binary str_col (UTF8);\nrequired group params (MAP) {\nrepeated group key_value {\nrequired binary key (UTF8);\nrequired binary value (UTF8);\n}\n}\nrequired group params_arr (LIST) {\nrepeated group list {\nrequired binary element (UTF8);\n}\n}\nrequired group params_struct {\nrequired int64 id;\n required binary name (UTF8);\n }\nrequired group params_arr_complex (LIST) {\nrepeated group list {\nrequired group element {\n required int64 id;\n required binary name (UTF8);\n}\n}\n}\nrequired group params_complex (MAP) {\nrepeated group key_value {\nrequired binary key (UTF8);\nrequired group value {\nrequired int64 id;\n required binary name (UTF8);\n}\n}\n}\nrequired group params_struct_complex {\nrequired int64 id;\n required group detail {\nrequired int64 id;\n required binary name (UTF8);\n}\n}\n}", "dataxParquetMode": "fields" } }
Parameter skrip Writer
|
Parameter |
Deskripsi |
Wajib |
Nilai default |
|
datasource |
Nama sumber data. Anda dapat menambahkan sumber data dalam mode skrip. Nilai parameter ini harus sama dengan nama sumber data yang Anda tambahkan. |
Ya |
N/A |
|
object |
Nama file yang ditulis oleh OSS Writer. OSS menggunakan nama file untuk mensimulasikan struktur direktori. OSS memberlakukan batasan berikut pada nama objek:
Jika Anda tidak ingin sufiks UUID acak, kami menyarankan Anda mengatur |
Ya |
N/A |
|
ossBlockSize |
Ukuran blok untuk unggah multi-bagian OSS. Ukuran blok default adalah 16 MB. Saat format file adalah parquet atau ORC, Anda dapat mengonfigurasi parameter ini pada level yang sama dengan parameter object. Unggah multi-bagian OSS mendukung maksimal 10.000 bagian. Dengan ukuran blok default, ukuran file maksimum adalah 160 GB. Jika jumlah bagian melebihi batas, Anda dapat meningkatkan ukuran blok untuk mendukung unggah file yang lebih besar. |
Tidak |
16 |
|
writeMode |
Menentukan bagaimana OSS Writer menangani data yang sudah ada sebelum menulis:
|
Ya |
Tidak ada |
|
writeSingleObject |
Menentukan apakah data ditulis ke satu file saat menulis data ke OSS:
Catatan
|
Tidak |
false |
|
fileFormat |
Format file output. Format berikut didukung:
|
Tidak |
text |
|
compress |
Format kompresi file data yang ditulis ke OSS. Anda harus mengonfigurasi parameter ini dalam mode skrip. Penting
Kompresi tidak didukung untuk format CSV dan TEXT. File Parquet dan ORC hanya mendukung kompresi SNAPPY. |
Tidak |
Tidak ada |
|
fieldDelimiter |
Pemisah bidang untuk menulis. |
Tidak |
, |
|
encoding |
Konfigurasi encoding untuk file output. |
Tidak |
utf-8 |
|
parquetSchema |
Diperlukan saat menulis ke OSS dalam format file Parquet. Parameter ini menjelaskan skema file tujuan dan hanya berlaku saat fileFormat diatur ke parquet. Formatnya sebagai berikut.
Item konfigurasi dijelaskan sebagai berikut:
Catatan
Setiap definisi kolom harus diakhiri dengan titik koma, termasuk baris terakhir. Contoh:
|
Tidak |
Tidak ada |
|
nullFormat |
String standar tidak dapat digunakan untuk mendefinisikan null (null pointer) dalam file teks. Sistem sinkronisasi data menyediakan nullFormat untuk mendefinisikan string yang merepresentasikan null. Misalnya, jika Anda mengatur |
Tidak |
Tidak ada |
|
header |
Baris header saat menulis ke OSS. Contoh: |
Tidak |
Tidak ada |
|
maxFileSize (konfigurasi lanjutan, tidak didukung di Antarmuka tanpa kode) |
Ukuran maksimum satu file objek yang ditulis ke OSS. Nilai default adalah 10.000 × 10 MB. Ini mirip dengan mengontrol ukuran file log saat mencetak log log4j. Selama unggah multi-bagian OSS, setiap bagian berukuran 10 MB (yang juga merupakan granularitas minimum untuk rotasi log, artinya nilai maxFileSize kurang dari 10 MB diperlakukan sebagai 10 MB). Setiap OSS InitiateMultipartUploadRequest mendukung maksimal 10.000 bagian. Saat rotasi terjadi, nama objek dihasilkan dengan menambahkan sufiks seperti _1,_2,_3 ke awalan objek asli dengan string acak berbasis UUID. Catatan
|
Tidak |
100.000 |
|
suffix (konfigurasi lanjutan, tidak didukung di Antarmuka tanpa kode) |
Sufiks yang ditambahkan ke nama file yang dihasilkan selama penulisan sinkronisasi data. Misalnya, jika Anda mengatur suffix ke .csv, nama file akhir adalah fileName****.csv. |
Tidak |
Tidak ada |
Lampiran: Strategi konversi tipe untuk data Parquet
Jika Anda tidak mengonfigurasi parquetSchema, DataWorks mengonversi tipe bidang sumber ke tipe data Parquet berdasarkan strategi berikut.
|
Tipe data yang dikonversi |
Tipe Parquet |
Tipe logis Parquet |
|
CHAR / VARCHAR / STRING |
BINARY |
UTF8 |
|
BOOLEAN |
BOOLEAN |
N/A |
|
BINARY / VARBINARY |
BINARY |
N/A |
|
DECIMAL |
FIXED_LEN_BYTE_ARRAY |
DECIMAL |
|
TINYINT |
INT32 |
INT_8 |
|
SMALLINT |
INT32 |
INT_16 |
|
INT/INTEGER |
INT32 |
N/A |
|
BIGINT |
INT64 |
N/A |
|
FLOAT |
FLOAT |
N/A |
|
DOUBLE |
DOUBLE |
N/A |
|
DATE |
INT32 |
DATE |
|
TIME |
INT32 |
TIME_MILLIS |
|
TIMESTAMP/DATETIME |
INT96 |
N/A |