Sumber data Hologres menyediakan saluran baca dan tulis dua arah untuk Hologres. Topik ini menjelaskan kemampuan sinkronisasi data Hologres yang didukung oleh DataWorks.
Batasan
Sumber data Hologres hanya mendukung menjalankan tugas sinkronisasi pada serverless resource group.
Baca dan tulis batch
Hologres Writer tidak mendukung penulisan data ke tabel eksternal Hologres.
Logika untuk memperoleh endpoint Hologres guna koneksi sumber data:
Untuk instans Hologres di wilayah saat ini, prioritas endpoint adalah: any Tunnel > Single Tunnel > Public (internet).
Untuk instans Hologres di wilayah lain, prioritas endpoint adalah: Public (internet) > Single Tunnel.
Baca real-time tabel tunggal
Versi Hologres harus 2.1 atau lebih baru.
Sinkronisasi inkremental untuk tabel partisi Hologres tidak didukung.
Sinkronisasi pesan perubahan DDL pada tabel Hologres tidak didukung.
Sinkronisasi inkremental Hologres mendukung tipe data berikut:
INTEGER, BIGINT, TEXT, CHAR(n), VARCHAR(n), REAL, JSON, SERIAL, OID, INT4[], INT8[], FLOAT8[], BOOLEAN[], TEXT[].
Untuk sinkronisasi real-time tabel tunggal dari Hologres, Anda harus mengaktifkan Hologres Binlog pada tabel sumber Hologres. Untuk informasi selengkapnya, lihat Berlangganan Hologres Binlog.
Tulis real-time basis data penuh
Tugas sinkronisasi data real-time tidak mendukung sinkronisasi tabel tanpa primary key.
Saat menyinkronkan data dari basis data penuh MySQL ke Hologres secara real time, data hanya dapat ditulis ke tabel anak dari tabel partisi. Penulisan ke tabel induk tabel partisi tidak didukung.
Tipe data yang didukung
Tipe data | Baca batch (Hologres Reader) | Tulis batch (Hologres Writer) | Penulisan real-time |
UUID | Tidak didukung | Tidak didukung | Tidak didukung |
CHAR | Didukung | Didukung | Didukung |
NCHAR | Didukung | Didukung | Didukung |
VARCHAR | Didukung | Didukung | Didukung |
LONGVARCHAR | Didukung | Didukung | Didukung |
NVARCHAR | Didukung | Didukung | Didukung |
LONGNVARCHAR | Didukung | Didukung | Didukung |
CLOB | Didukung | Didukung | Didukung |
NCLOB | Didukung | Didukung | Didukung |
SMALLINT | Didukung | Didukung | Didukung |
TINYINT | Didukung | Didukung | Didukung |
INTEGER | Didukung | Didukung | Didukung |
BIGINT | Didukung | Didukung | Didukung |
NUMERIC | Didukung | Didukung | Didukung |
DECIMAL | Didukung | Didukung | Didukung |
FLOAT | Didukung | Didukung | Didukung |
REAL | Didukung | Didukung | Didukung |
DOUBLE | Didukung | Didukung | Didukung |
TIME | Didukung | Didukung | Didukung |
DATE | Didukung | Didukung | Didukung |
TIMESTAMP | Didukung | Didukung | Didukung |
BINARY | Didukung | Didukung | Didukung |
VARBINARY | Didukung | Didukung | Didukung |
BLOB | Didukung | Didukung | Didukung |
LONGVARBINARY | Didukung | Didukung | Didukung |
BOOLEAN | Didukung | Didukung | Didukung |
BIT | Didukung | Didukung | Didukung |
JSON | Didukung | Didukung | Didukung |
JSONB | Didukung | Didukung | Didukung |
Cara kerja
Baca batch
Hologres Reader mendukung dua mode baca:
Mode JDBC (default)
Membaca data dari tabel Hologres melalui PSQL. Beberapa tugas konkuren diinisiasi berdasarkan jumlah shard tabel, dengan setiap shard sesuai dengan satu tugas Select konkuren:
Saat membuat tabel di Hologres, Anda dapat mengonfigurasi jumlah shard tabel dengan menjalankan
CALL set_table_property('table_name', 'shard_count', 'xx')dalam transaksiCREATE TABLEyang sama.Secara default, database menggunakan jumlah shard default, yang bergantung pada konfigurasi instans Hologres.
Pernyataan Select memfilter data berdasarkan shard menggunakan kolom bawaan hg_shard_id dari tabel.
Mode Arrow (useArrow=true)
Membaca data melalui protokol Hologres COPY OUT Arrow. Mode ini mendukung transfer terkompresi LZ4 dan memberikan kinerja lebih tinggi:
Memerlukan Hologres versi >= 4.0.18.
Tugas konkuren juga dibagi berdasarkan jumlah shard.
Kolom fungsi dan kolom konstan tidak didukung. Hanya kolom fisik dalam tabel yang didukung.
Transfer terkompresi diaktifkan secara otomatis ketika persyaratan versi terpenuhi.
Tulis batch
Hologres Writer memperoleh data protokol yang dihasilkan oleh Reader melalui framework sinkronisasi data. Saluran dan strategi resolusi konflik yang digunakan untuk menulis data ditentukan oleh konfigurasi writeMode dan conflictMode.
Mode tulis (writeMode)
Mode tulis | Metode | Skenario yang berlaku | Persyaratan versi |
INSERT | Menggunakan Holo Client untuk penulisan batch (INSERT ON CONFLICT). | Skenario real-time (termasuk penarikan data) dan skenario penulisan umum. | Semua versi |
FIXED_COPY | Menggunakan Holo Client Fixed Copy untuk penulisan streaming. | Skenario real-time (tidak termasuk penarikan data). Juga dapat digunakan untuk skenario impor batch. | Hologres >= 1.1 |
STAGE | Pertama-tama menulis data ke Hologres Internal Stage (format Arrow), lalu mengimpor data dari stage ke tabel tujuan. | Mode yang direkomendasikan untuk sinkronisasi batch. Kinerja terbaik untuk impor skala besar. | Hologres >= 4.1.0 |
COPY | Menggunakan JDBC COPY FROM STDIN untuk menulis data CSV teks. | Skenario impor batch yang kompatibel dengan versi sebelumnya. | Semua versi |
Rekomendasi skenario
Mode penanganan konflik (conflictMode)
Anda dapat mengonfigurasi conflictMode untuk menentukan cara menangani data yang baru diimpor ketika terjadi konflik primary key dengan data yang sudah ada:
conflictMode hanya berlaku untuk tabel yang memiliki primary key. Untuk informasi lebih lanjut tentang mekanisme penulisan dan kinerja, lihat Menulis data ke Hologres.
Ketika conflictMode diatur ke Replace (full row update), data baru menimpa data lama. Semua kolom dalam baris tersebut ditimpa. Kolom yang tidak termasuk dalam pemetaan kolom dipaksakan menjadi NULL.
Ketika conflictMode diatur ke Update, data baru menimpa data lama. Hanya kolom yang termasuk dalam pemetaan kolom yang ditimpa.
Ketika conflictMode diatur ke Ignore, data baru diabaikan.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data
Sinkronisasi batch tabel tunggal
Sumber data yang didukung: Semua jenis sumber data yang didukung oleh modul Data Integration.
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi batch di antarmuka tanpa kode dan Konfigurasikan tugas sinkronisasi batch menggunakan editor kode. Untuk parameter lengkap dan demo skrip yang tersedia di editor kode, lihat Lampiran: Parameter lengkap dan demo skrip di bawah ini.
Sinkronisasi real-time tabel tunggal
Sumber data yang didukung: DataHub, Hologres, Kafka, dan LogHub
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi real-time.
Sinkronisasi batch basis data penuh
Sumber data yang didukung: AnalyticDB for MySQL 3.0, ClickHouse, Doris, Hologres, Oracle, PolarDB, dan SQL Server
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi batch basis data penuh
Sinkronisasi real-time basis data penuh
Sumber data yang didukung: AnalyticDB for OceanBase, MongoDB, MySQL, Oracle, PolarDB, PolarDB-X 2.0, dan PostgreSQL
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi real-time untuk menyinkronkan data satu tabel
Real-time basis data penuh Serverless
Sumber data yang didukung: MySQL
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi real-time basis data penuh Serverless
FAQ tentang tugas sinkronisasi real-time: FAQ tentang sinkronisasi real-time.
Lampiran: Demo skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
Konfigurasikan tabel non-partisi
Contoh berikut menunjukkan cara mengonfigurasi pembacaan data dari tabel non-partisi Hologres ke memori.
{ "transform": false, "type": "job", "version": "2.0", "steps": [ { "stepType": "holo", "parameter": { "datasource": "holo_db", "envType": 1, "column": [ "tag", "id", "title", "body" ], "where": "", "table": "holo_reader_basic_src" }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": { "print": false, "fieldDelimiter": "," }, "name": "Writer", "category": "writer" } ], "setting": { "executeMode": null, "failoverEnable": null, "errorLimit": { "record": "0" }, "speed": { "concurrent": 2, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Pernyataan DDL tabel Hologres adalah sebagai berikut.
begin; drop table if exists holo_reader_basic_src; create table holo_reader_basic_src( tag text not null, id int not null, title text not null, body text, primary key (tag, id)); call set_table_property('holo_reader_basic_src', 'orientation', 'column'); call set_table_property('holo_reader_basic_src', 'shard_count', '3'); commit;
Konfigurasikan tabel partisi
Konfigurasikan pembacaan data dari tabel anak tabel partisi Hologres ke memori.
CatatanPerhatikan konfigurasi partition.
{ "transform": false, "type": "job", "version": "2.0", "steps": [ { "stepType": "holo", "parameter": { "selectedDatabase": "public", "partition": "tag=foo", "datasource": "holo_db", "envType": 1, "column": [ "tag", "id", "title", "body" ], "tableComment": "", "where": "", "table": "public.holo_reader_basic_part_src" }, "name": "Reader", "category": "reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0" }, "speed":{ "throttle":true, "concurrent":1, "mbps":"12" } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }Pernyataan DDL tabel Hologres adalah sebagai berikut.
begin; drop table if exists holo_reader_basic_part_src; create table holo_reader_basic_part_src( tag text not null, id int not null, title text not null, body text, primary key (tag, id)) partition by list( tag ); call set_table_property('holo_reader_basic_part_src', 'orientation', 'column'); call set_table_property('holo_reader_basic_part_src', 'shard_count', '3'); commit; create table holo_reader_basic_part_src_1583161774228 partition of holo_reader_basic_part_src for values in ('foo'); # Pastikan tabel anak dari tabel partisi telah dibuat dan data telah diimpor. postgres=# \d+ holo_reader_basic_part_src Table "public.holo_reader_basic_part_src" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description --------+---------+-----------+----------+---------+----------+--------------+------------- tag | text | | not null | | extended | | id | integer | | not null | | plain | | title | text | | not null | | extended | | body | text | | | | extended | | Partition key: LIST (tag) Indexes: "holo_reader_basic_part_src_pkey" PRIMARY KEY, btree (tag, id) Partitions: holo_reader_basic_part_src_1583161774228 FOR VALUES IN ('foo')
Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
database | Nama database dalam instans Hologres. | Ya | N/A |
table | Nama tabel Hologres. Format | Bersyarat | N/A |
querySql | Pernyataan SQL kueri kustom. Jika parameter ini dikonfigurasi, parameter tabel dan kolom akan diabaikan. Parameter ini saling eksklusif dengan | Wajib bersyarat | N/A |
column | Kolom yang akan dibaca. | Ya | N/A |
partition | Untuk tabel partisi, menentukan kolom partisi dan nilainya dalam format Penting
| Tidak | Kosong, menunjukkan tabel non-partisi. |
where | Kondisi filter, yang ditambahkan ke klausa WHERE pernyataan SELECT. Parameter ini hanya berlaku dalam mode tabel. | Tidak | Kosong |
useArrow | Menentukan apakah akan menggunakan format kolom Arrow untuk sinkronisasi data berkinerja tinggi. Saat diaktifkan, Reader menggunakan protokol COPY OUT Arrow untuk membaca data dan meneruskannya ke Writer hilir dalam format kolom guna meningkatkan kinerja. Diperlukan Hologres 4.0.18 atau lebih baru. Jika versi tidak memenuhi persyaratan, sistem secara otomatis kembali ke mode JDBC. Mode Arrow tidak mendukung kolom fungsi atau kolom konstan. Saat ini, mode ini mendukung sinkronisasi batch basis data penuh dan sinkronisasi batch tabel tunggal ketika sumber dan tujuan keduanya adalah MaxCompute, Hologres, atau Hive/OSS/HDFS (Parquet/ORC). Untuk informasi selengkapnya, lihat Gunakan format Arrow untuk sinkronisasi data berkinerja tinggi. | Tidak | false |
compress | Menentukan apakah akan mengaktifkan kompresi LZ4 untuk transfer data dalam mode Arrow. Parameter ini hanya berlaku ketika | Tidak | true (diatur otomatis ketika persyaratan versi terpenuhi) |
fetchSize | Jumlah baris yang diambil dari database dalam setiap permintaan dalam mode JDBC. | Tidak | 1000 |
jdbcReadTimeout | Periode timeout baca JDBC. Satuan: detik. | Tidak | 60 |
enableServerlessComputing | Menentukan apakah akan mengaktifkan Serverless Computing Hologres untuk mempercepat kueri. Catatan: Parameter ini mengontrol kemampuan Serverless Computing instans Hologres, yang berbeda dari serverless resource group DataWorks. | Tidak | false |
serverlessComputingQueryPriority | Prioritas kueri untuk Serverless Computing Hologres. Nilai valid: 1 hingga 10. Nilai yang lebih besar menunjukkan prioritas lebih tinggi. Parameter ini hanya berlaku ketika | Tidak | 3 |
serverlessComputingRequiredCores | Jumlah core yang diminta untuk Serverless Computing Hologres. Parameter ini hanya berlaku ketika | Tidak | 5 |
Demo skrip Writer
Konfigurasikan tabel non-partisi
Konfigurasikan data yang dihasilkan dari MySQL untuk diimpor ke tabel Hologres biasa. Contoh berikut menunjukkan konfigurasi untuk mengimpor data dalam mode INSERT.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "useSpecialSecret": false, "column": [ "<column1>", "<column2>", ......, "<columnN>" ], "tableComment": "", "connection": [ { "datasource": "<mysql_source_name>",//Nama sumber data MySQL "table": [ "<mysql_table_name>" ] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "holo", "parameter": { "selectedDatabase":"public", "schema": "public", "writeMode": "FIXED_COPY", "maxConnectionCount": 9, "truncate":true,//Aturan pembersihan "datasource": "<holo_sink_name>",//Nama sumber data Hologres "conflictMode": "ignore", "envType": 0, "column": [ "<column1>", "<column2>", ......, "<columnN>" ], "tableComment": "", "table": "<holo_table_name>", "reShuffleByDistributionKey":false }, "name": "Writer", "category": "writer" } ], "setting": { "executeMode": null, "errorLimit": { "record": "0" }, "locale": "zh_CN", "speed": { "concurrent": 2,//Konkurensi pekerjaan "throttle": false//Pengendalian aliran } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Pernyataan DDL untuk tabel Hologres adalah sebagai berikut.
begin; drop table if exists mysql_to_holo_test; create table mysql_to_holo_test( tag text not null, id int not null, body text not null, brrth date, primary key (tag, id)); call set_table_property('mysql_to_holo_test', 'orientation', 'column'); call set_table_property('mysql_to_holo_test', 'distribution_key', 'id'); call set_table_property('mysql_to_holo_test', 'clustering_key', 'birth'); commit;
Konfigurasikan tabel partisi
CatatanHologres hanya mendukung partisi LIST. Hanya satu kolom partisi yang didukung, dan kolom tersebut harus bertipe INT4 atau TEXT.
Pastikan parameter ini sesuai dengan konfigurasi partisi dalam DDL tabel.
Konfigurasikan sinkronisasi data yang dihasilkan dari MySQL ke tabel anak tabel partisi Hologres.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "useSpecialSecret": false, "column": [ "<column1>", "<column2>", ......, "<columnN>" ], "tableComment": "", "connection": [ { "datasource": "<mysql_source_name>", "table": [ "<mysql_table_name>" ] } ], "where": "", "splitPk": "<mysql_pk>",//Bidang primary key MySQL "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "holo", "parameter": { "selectedDatabase": "public", "writeMode": "insert", "maxConnectionCount": 9, "partition": "ds=20201215",//Kunci partisi Hologres "truncate": "false", "datasource": "<holo_sink_name>",//Nama sumber data Hologres "conflictMode": "ignore", "envType": 0, "column": [ "<column1>", "<column2>", ......, "<columnN>" ], "tableComment": "", "table": "<holo_table_name>", "reShuffleByDistributionKey":false }, "name": "Writer", "category": "writer" } ], "setting": { "executeMode": null, "failoverEnable": null, "errorLimit": { "record": "0" }, "speed": { "concurrent": 2,//Konkurensi pekerjaan "throttle": false//Pengendalian aliran } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Pernyataan DDL tabel Hologres adalah sebagai berikut.
BEGIN; CREATE TABLE public.hologres_parent_table( a text , b int, c timestamp, d text, ds text, primary key(ds,b) ) PARTITION BY LIST(ds); CALL set_table_property('public.hologres_parent_table', 'orientation', 'column'); CREATE TABLE public.holo_child_1 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201215'); CREATE TABLE public.holo_child_2 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201216'); CREATE TABLE public.holo_child_3 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201217'); COMMIT;
Parameter skrip Writer
Parameter dasar
Parameter | Deskripsi | Wajib | Nilai default |
database | Nama database dalam instans Hologres. | Ya | N/A |
table | Nama tabel Hologres. Nama skema dalam nama tabel didukung, seperti | Ya | N/A |
writeMode | Mode tulis. Empat mode didukung: | Ya | N/A |
conflictMode | Mode resolusi konflik. Nilai valid: | Ya | N/A |
column | Kolom data tabel tujuan. Kolom harus mencakup himpunan primary key tabel tujuan (kecuali untuk primary key auto-increment serial dan kolom yang dihasilkan). | Ya | N/A |
partition | Untuk tabel partisi, parameter ini menentukan kolom partisi dan nilai yang sesuai dalam format Catatan
| Tidak | Kosong, yang menunjukkan tabel non-partisi |
reShuffleByDistributionKey | Di Hologres, impor batch ke tabel primary key secara default memicu penguncian tabel, yang membatasi kemampuan penulisan konkuren dari beberapa koneksi. Mengaktifkan fitur reShuffle memungkinkan tugas berbeda dalam skenario sinkronisasi batch menulis data ke shard Holo tertentu berdasarkan kunci distribusi, sehingga memungkinkan penulisan batch konkuren dan meningkatkan kinerja penulisan secara signifikan. Dibandingkan dengan penulisan real-time tradisional dalam mode JDBC, fitur ini mengurangi beban pada server Holo dan lebih meningkatkan efisiensi penulisan. Penting Fitur ini hanya tersedia pada serverless resource group. | Tidak | false |
truncate | Menentukan apakah akan membersihkan tabel tujuan sebelum menulis data ke tabel Hologres.
| Tidak | false |
partitionFormat | Aturan pemformatan untuk nilai partisi dinamis. Untuk data sumber bertipe Date, tentukan format seperti | Tidak | N/A |
preSql | Daftar pernyataan SQL yang dieksekusi sebelum menulis data. Eksekusi pada tabel induk tabel partisi tidak didukung. | Tidak | N/A |
postSql | Daftar pernyataan SQL yang dieksekusi setelah menulis data. | Tidak | N/A |
Parameter koneksi dan kinerja
Parameter | Deskripsi | Wajib | Nilai default |
maxConnectionCount | Jumlah koneksi konkuren untuk menulis. Nilai ini disesuaikan secara otomatis berdasarkan konkurensi tugas aktual ( | Tidak | 3 |
maxRetryCount | Jumlah percobaan ulang saat gagal. | Tidak | 10 |
jdbcReadTimeout | Periode timeout koneksi JDBC. Satuan: detik. | Tidak | 120 |
maxCommitSize | Jumlah maksimum byte per commit, dalam byte. | Tidak | 2097152 (2 MB) |
maxCommitCount | Jumlah maksimum catatan per commit. | Tidak | 256 |
reShuffleByDistributionKey | Di Hologres, impor batch ke tabel primary key secara default memicu penguncian tabel, yang membatasi kemampuan penulisan konkuren dari beberapa koneksi. Mengaktifkan fitur reShuffle memungkinkan tugas berbeda menulis data ke shard Holo tertentu berdasarkan kunci distribusi dalam skenario sinkronisasi batch. Hal ini memungkinkan penulisan batch konkuren dan meningkatkan kinerja penulisan secara signifikan. Dibandingkan dengan penulisan real-time tradisional dalam mode JDBC, mengaktifkan fitur ini mengurangi beban pada server Holo dan lebih meningkatkan efisiensi penulisan. Penting Fitur ini hanya tersedia pada serverless resource group. | Tidak | false |
removeU0000InTextColumnValue | Menentukan apakah akan menghapus karakter | Tidak | true |
Parameter Hologres Serverless Computing
Parameter berikut mengontrol kemampuan Serverless Computing instans Hologres. Parameter ini dapat mempercepat pembacaan kueri untuk Reader dan operasi INSERT FROM Stage untuk Writer dalam mode STAGE.
Catatan: Hologres Serverless Computing dan serverless resource group DataWorks adalah konsep yang berbeda. Yang pertama adalah kemampuan komputasi elastis dalam instans Hologres, sedangkan yang kedua mengacu pada sumber daya penjadwalan yang digunakan oleh DataWorks untuk menjalankan tugas sinkronisasi.
Catatan penggunaan: Semua mode didukung untuk Reader. Hanya mode STAGE yang didukung untuk Writer.
Parameter | Deskripsi | Wajib | Nilai default |
enableServerlessComputing | Menentukan apakah akan mengaktifkan akselerasi Serverless Computing Hologres. | Tidak | false |
serverlessComputingQueryPriority | Prioritas kueri untuk Serverless Computing. Nilai valid: 1 hingga 10. Nilai yang lebih besar menunjukkan prioritas lebih tinggi. | Tidak | 3 |
serverlessComputingRequiredCores | Jumlah core yang diminta untuk Serverless Computing. Atur parameter ini ke 0 agar mesin menentukan secara otomatis. | Tidak | N/A (tidak diatur) |
Parameter khusus mode FIXED_COPY
Parameter | Deskripsi | Wajib | Nilai default |
isBinaryFormat | Menentukan apakah akan menggunakan format biner untuk transfer data. Jika parameter ini diatur ke true, format biner digunakan, yang memberikan efisiensi transfer lebih tinggi. Jika diatur ke false, format teks (CSV) digunakan. | Tidak | true |
checkRecordBeforePut | Menentukan apakah akan memvalidasi catatan sebelum menulis, termasuk pemeriksaan tipe dan panjang. Jika parameter ini diaktifkan, data kotor dapat dideteksi di sisi klien sebelumnya. | Tidak | true |
maxCellBufferSize | Ukuran buffer maksimum untuk satu baris data, dalam byte. Pastikan buffer dapat menampung baris lengkap. Jika tidak, operasi tulis akan gagal. | Tidak | 10485760 (10 MB) |
Parameter khusus mode STAGE
Parameter | Deskripsi | Wajib | Nilai default |
stageTTL | Waktu hidup (TTL) internal stage, dalam detik. Stage akan dibersihkan secara otomatis setelah periode ini. | Tidak | 86400 (1 hari) |
stageFileSizeLimit | Ukuran maksimum file stage tunggal, dalam byte. File baru akan dibuat secara otomatis ketika batas ini terlampaui. | Tidak | 67108864 (64 MB) |
stageMaxBatchSize | Jumlah maksimum baris dalam batch Arrow untuk penulisan catatan. Arrow RecordBatch ditulis setiap kali jumlah baris yang ditentukan terakumulasi. | Tidak | 8192 |
stageCompress | Menentukan apakah akan mengaktifkan kompresi Arrow LZ4. Jika parameter ini diaktifkan, ruang penyimpanan stage dan volume transfer jaringan berkurang secara signifikan. Fitur ini memerlukan Hologres >= 4.2.8. Jika persyaratan versi tidak terpenuhi, kompresi akan dinonaktifkan secara otomatis. | Tidak | true |
Parameter lanjutan
Parameter | Deskripsi | Wajib | Nilai default |
useArrow | Menentukan apakah akan menggunakan jalur tulis kolom Arrow. Jika parameter ini diatur ke true dan versi Hologres >= 4.1.0, mode tulis STAGE akan diaktifkan secara otomatis. Hologres Writer dapat menerima data berformat Arrow (ArrowTabularRecord) yang dihasilkan oleh reader hulu mana pun, dan juga dapat menerima catatan berbasis baris standar, yang secara otomatis dikonversi ke format Arrow untuk ditulis ke stage. Untuk informasi selengkapnya, lihat Tulisan kolom Arrow. | Tidak | false |
default.enable | Menentukan apakah akan mengisi nilai default secara otomatis untuk kolom yang didefinisikan sebagai NOT NULL tetapi tidak memiliki nilai yang ditentukan. | Tidak | true |
enableWriteBitTypeWithString | Menentukan apakah akan mengizinkan penulisan data BIT sebagai string. | Tidak | false |
holoClient | Item konfigurasi lanjutan untuk Holo Client dalam format Map. Anda dapat mengatur parameter apa pun dari HoloConfig dasar. Contoh: | Tidak | Tidak ada |