Tüm Ürünler
Search
Belge Merkezi

DataWorks:Hologres veri kaynağı

Son Güncelleme:Oct 05, 2026

Hologres veri kaynağı, Hologres için çift yönlü okuma ve yazma kanalları sağlar. Bu konuda, DataWorks tarafından desteklenen Hologres veri senkronizasyonu yetenekleri açıklanmaktadır.

Sınırlamalar

Hologres veri kaynağı, senkronizasyon görevlerini yalnızca bir serverless kaynak grubunda çalıştırmayı destekler.

Toplu iş okuma ve yazma

  • Hologres Writer, verilerin Hologres harici tablolarına yazılmasını desteklemez.

  • Veri kaynağı bağlantısı için Hologres uç noktasının belirlenmesine ilişkin mantık:

    • Geçerli bölgedeki Hologres örnekleri için uç nokta önceliği şöyledir: any Tunnel > Single Tunnel > Public (internet).

    • Diğer bölgelerdeki Hologres örnekleri için uç nokta önceliği şöyledir: Public (internet) > Single Tunnel.

Tek tablo gerçek zamanlı okuma

  • Hologres sürümü 2,1 veya üzeri olmalıdır.

  • Hologres bölümlenmiş tabloların artımlı senkronizasyonu desteklenmez.

  • Hologres tablolarındaki DDL değişiklik mesajlarının senkronizasyonu desteklenmez.

  • Hologres artımlı senkronizasyon aşağıdaki veri türlerini destekler:

    INTEGER, BIGINT, TEXT, CHAR(n), VARCHAR(n), REAL, JSON, SERIAL, OID, INT4[], INT8[], FLOAT8[], BOOLEAN[], TEXT[].

  • Hologres'ten tek tablo gerçek zamanlı senkronizasyon için kaynak Hologres tablosunda Hologres Binlog'u etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. Hologres Binlog'a abone olma.

Tam veritabanı gerçek zamanlı yazma

  • Gerçek zamanlı veri senkronizasyon görevleri, birincil anahtarı olmayan tabloların senkronize edilmesini desteklemez.

  • MySQL tam veritabanından Hologres'e gerçek zamanlı olarak veri senkronize ederken veriler yalnızca bölümlenmiş tabloların alt tablolarına yazılabilir. Bölümlenmiş bir tablonun üst tablosuna yazma işlemi desteklenmez.

Desteklenen veri türleri


Veri türü


Toplu iş okuma (Hologres Reader)


Toplu iş yazma (Hologres Writer)


Gerçek zamanlı yazma


UUID


Desteklenmez


Desteklenmez


Desteklenmez


CHAR


Desteklenir


Desteklenir


Desteklenir


NCHAR


Desteklenir


Desteklenir


Desteklenir


VARCHAR


Desteklenir


Desteklenir


Desteklenir


LONGVARCHAR


Desteklenir


Desteklenir


Desteklenir


NVARCHAR


Desteklenir


Desteklenir


Desteklenir


LONGNVARCHAR


Desteklenir


Desteklenir


Desteklenir


CLOB


Desteklenir


Desteklenir


Desteklenir


NCLOB


Desteklenir


Desteklenir


Desteklenir


SMALLINT


Desteklenir


Desteklenir


Desteklenir


TINYINT


Desteklenir


Desteklenir


Desteklenir


INTEGER


Desteklenir


Desteklenir


Desteklenir


BIGINT


Desteklenir


Desteklenir


Desteklenir


NUMERIC


Desteklenir


Desteklenir


Desteklenir


DECIMAL


Desteklenir


Desteklenir


Desteklenir


FLOAT


Desteklenir


Desteklenir


Desteklenir


REAL


Desteklenir


Desteklenir


Desteklenir


DOUBLE


Desteklenir


Desteklenir


Desteklenir


TIME


Desteklenir


Desteklenir


Desteklenir


DATE


Desteklenir


Desteklenir


Desteklenir


TIMESTAMP


Desteklenir


Desteklenir


Desteklenir


BINARY


Desteklenir


Desteklenir


Desteklenir


VARBINARY


Desteklenir


Desteklenir


Desteklenir


BLOB


Desteklenir


Desteklenir


Desteklenir


LONGVARBINARY


Desteklenir


Desteklenir


Desteklenir


BOOLEAN


Desteklenir


Desteklenir


Desteklenir


BIT


Desteklenir


Desteklenir


Desteklenir


JSON


Desteklenir


Desteklenir


Desteklenir


JSONB


Desteklenir


Desteklenir


Desteklenir

Çalışma mekanizması

Toplu iş okuma

Hologres Reader iki okuma modunu destekler:

JDBC modu (varsayılan)

PSQL aracılığıyla Hologres tablolarından veri okur. Tablonun parça sayısına bağlı olarak birden çok eşzamanlı görev başlatılır; her parça bir Select görevine karşılık gelir:

  • Hologres'te tablo oluştururken, aynı CREATE TABLE işlemi içinde CALL set_table_property('table_name', 'shard_count', 'xx') komutunu çalıştırarak tablonun parça sayısını yapılandırabilirsiniz.

    Varsayılan olarak, veritabanı Hologres örneğinin yapılandırmasına bağlı olan varsayılan parça sayısını kullanır.

  • Select deyimi, tablonun yerleşik sütunu hg_shard_id kullanarak verilere göre parçaları filtreler.

Arrow modu (useArrow=true)

Hologres COPY OUT Arrow protokolü üzerinden veri okur. Bu mod LZ4 sıkıştırılmış aktarımı destekler ve daha yüksek performans sağlar:

  • Hologres sürümünün >= 4,0,18 olması gerekir.

  • Eşzamanlı görevler ayrıca parça sayısına göre ayrılır.

  • İşlev sütunları ve sabit sütunlar desteklenmez. Yalnızca tablodaki fiziksel sütunlar desteklenir.

  • Sürüm gereksinimi karşılandığında sıkıştırılmış aktarım otomatik olarak etkinleştirilir.

Toplu iş yazma

Hologres Writer, veri senkronizasyon çerçevesi aracılığıyla Reader tarafından oluşturulan protokol verilerini alır. Veri yazmak için kullanılan kanal ve çakışma çözümleme stratejisi, writeMode ve conflictMode yapılandırmaları tarafından belirlenir.

Yazma modu (writeMode)


Yazma modu


Yöntem


Uygulanabilir senaryo


Sürüm gereksinimi


INSERT


Toplu iş yazma için Holo Client kullanır (INSERT ON CONFLICT).


Gerçek zamanlı senaryolar (veri geri çekme dahil) ve genel yazma senaryoları.


Tüm sürümler


FIXED_COPY


Akış yazmaları için Holo Client Fixed Copy kullanır.


Gerçek zamanlı senaryolar (veri geri çekme hariç). Toplu içe aktarma senaryolarında da kullanılabilir.


Hologres >= 1,1


STAGE


Önce verileri Hologres Internal Stage'e (Arrow biçimi) yazar, ardından verileri aşamadan hedef tabloya aktarır.


Toplu senkronizasyon için önerilen mod. Büyük ölçekli içe aktarmalar için en iyi performansı sunar.


Hologres >= 4,1,0


COPY


Metin CSV verilerini yazmak için JDBC COPY FROM STDIN kullanır.


Daha eski sürümlerle uyumlu toplu içe aktarma senaryoları.


Tüm sürümler

Senaryo önerileri

Çakışma işleme modu (conflictMode)

Mevcut verilerle birincil anahtar çakışması oluştuğunda yeni içe aktarılan verilerin nasıl işleneceğini belirtmek için conflictMode parametresini yapılandırabilirsiniz:

Önemli

conflictMode yalnızca birincil anahtarlara sahip tablolar için geçerlidir. Yazma mekanizması ve performansı hakkında daha fazla bilgi için bkz. Hologres'e veri yazma.

  • conflictMode parametresi Replace (tam satır güncelleme) olarak ayarlandığında, yeni veriler eski verilerin üzerine yazar. Satırdaki tüm sütunların üzerine yazılır. Sütun eşlemesine dahil edilmeyen sütunlar zorla NULL olarak ayarlanır.

  • conflictMode parametresi Update olarak ayarlandığında, yeni veriler eski verilerin üzerine yazar. Yalnızca sütun eşlemesine dahil edilen sütunların üzerine yazılır.

  • conflictMode parametresi Ignore olarak ayarlandığında, yeni veriler yoksayılır.

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce, Veri kaynağı yapılandırması bölümündeki talimatları izleyerek gerekli veri kaynağını DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.

Veri senkronizasyon görevi geliştirme

Tek tablo toplu iş senkronizasyonu

Tek tablo gerçek zamanlı senkronizasyon

Tam veritabanı toplu iş senkronizasyonu

Tam veritabanı gerçek zamanlı senkronizasyon

Serverless tam veritabanı gerçek zamanlı

Gerçek zamanlı senkronizasyon görevleriyle ilgili SSS: Gerçek zamanlı senkronizasyonla ilgili SSS .

Ek: Betik demoları ve parametre açıklaması

Kod düzenleyicisini kullanarak toplu iş senkronizasyon görevi yapılandırma

Kod düzenleyicisini kullanarak bir toplu iş senkronizasyon görevi yapılandırmak istiyorsanız, betikteki ilgili parametreleri birleşik betik biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Betik modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyicisini kullanarak bir toplu iş senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader betik demoları

  • Bölümlenmemiş tablo yapılandırma

    • Aşağıdaki örnekte, bir Hologres bölümlenmemiş tablosundan belleğe veri okumanın nasıl yapılandırıldığı gösterilmektedir.

      {
          "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"
                  }
              ]
          }
      }
    • Hologres tablosunun DDL deyimi aşağıdaki gibidir.

      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;
  • Bölümlenmiş tablo yapılandırma

    • Bir Hologres bölümlenmiş tablosunun alt tablosundan belleğe veri okumayı yapılandırın.

      Not

      partition parametresinin yapılandırılmasına dikkat edin.

      {
          "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"
            }
          ]
        }
      }
    • Hologres tablosunun DDL deyimi aşağıdaki gibidir.

      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');
      
      # Ensure that the child tables of the partitioned table have been created and data has been imported.
      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')

Reader betik parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

database

Hologres örneğindeki bir veritabanının adı.

Evet

Yok

table

Hologres tablosunun adı. schema_name.table_name biçimi desteklenir. Tablo bölümlenmiş bir tabloyse üst tablonun adını belirtin. Bu parametre querySql ile birbirini dışlar. Bunlardan en az birini yapılandırmanız gerekir.

Koşullu olarak gerekli

Yok

querySql

Özel bir sorgu SQL deyimi. Bu parametre yapılandırılırsa table ve column parametreleri yoksayılır. Bu parametre table ile birbirini dışlar. Bunlardan en az birini yapılandırmanız gerekir.

Koşullu olarak gerekli

Yok

column

Okunacak sütunlar. ["*"] tüm sütunları ifade eder. İşlev ifadesi sütunları da desteklenir (yalnızca JDBC modu).

Evet

Yok

partition

Bölümlenmiş tablolar için bölümlendirme sütununu ve değerini column=value biçiminde belirtir.

Önemli
  • Hologres yalnızca LIST bölümlendirmelerini destekler. Yalnızca tek bir bölümlendirme sütunu desteklenir ve sütun INT4 veya TEXT türünde olmalıdır.

  • Bu parametrenin tablo DDL'sindeki bölüm yapılandırmasıyla eşleştiğinden emin olun.

  • İlgili alt tabloların oluşturulduğundan ve veri içe aktarıldığından emin olun.

Hayır

Boş, bölümlenmemiş tabloyu ifade eder.

where

SELECT deyiminin WHERE yan tümcesine eklenen filtre koşulu. Bu parametre yalnızca tablo modunda etkilidir.

Hayır

Boş

useArrow

Yüksek performanslı veri senkronizasyonu için Arrow sütunlu biçiminin kullanılıp kullanılmayacağını belirtir. Etkinleştirildiğinde Reader, verileri okumak için COPY OUT Arrow protokolünü kullanır ve bunları daha iyi performans için sütunlu biçimde aşağı akış Writer'a iletir. Hologres 4,0,18 veya sonraki bir sürüm gerekir. Sürüm gereksinimi karşılanmazsa sistem otomatik olarak JDBC moduna geri döner. Arrow modu işlev sütunlarını veya sabit sütunları desteklemez. Şu anda bu mod, hem kaynak hem de hedef MaxCompute, Hologres veya Hive/OSS/HDFS (Parquet/ORC) olduğunda tam veritabanı toplu iş senkronizasyonunu ve tek tablo toplu iş senkronizasyonunu destekler. Daha fazla bilgi için bkz. Yüksek performanslı veri senkronizasyonu için Arrow biçimini kullanma.

Hayır

false

compress

Arrow modunda veri aktarımı için LZ4 sıkıştırmasının etkinleştirilip etkinleştirilmeyeceğini belirtir. Bu parametre yalnızca useArrow=true olduğunda etkilidir.

Hayır

true (sürüm gereksinimi karşılandığında otomatik olarak ayarlanır)

fetchSize

JDBC modunda her istekte veritabanından alınan satır sayısı.

Hayır

1000

jdbcReadTimeout

JDBC okuma zaman aşımı süresi. Birim: saniye.

Hayır

60

enableServerlessComputing

Sorguları hızlandırmak için Hologres Serverless Computing özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Not: Bu parametre, Hologres örneğinin Serverless Computing özelliğini kontrol eder; bu özellik, bir DataWorks serverless kaynak grubundan farklıdır.

Hayır

false

serverlessComputingQueryPriority

Hologres Serverless Computing için sorgu önceliği. Geçerli değerler: 1 ila 10. Daha büyük bir değer daha yüksek bir önceliği ifade eder. Bu parametre yalnızca enableServerlessComputing=true olduğunda etkilidir.

Hayır

3

serverlessComputingRequiredCores

Hologres Serverless Computing için istenen çekirdek sayısı. Bu parametre yalnızca enableServerlessComputing=true olduğunda etkilidir.

Hayır

5

Writer betik demosu

  • Bölümlenmemiş tablo yapılandırma

    • MySQL'den oluşturulan verilerin normal bir Hologres tablosuna aktarılmasını yapılandırın. Aşağıdaki örnekte INSERT modunda veri içe aktarmaya yönelik yapılandırma gösterilmektedir.

      {
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "mysql",
                  "parameter": {
                      "envType": 0,
                      "useSpecialSecret": false,
                      "column": [
                          "<column1>",
                          "<column2>",
                          ......,
                          "<columnN>"
                      ],
                      "tableComment": "",
                      "connection": [
                          {
                              "datasource": "<mysql_source_name>",//MySQL data source name
                              "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,//Cleanup rule
                      "datasource": "<holo_sink_name>",//Hologres data source name
                      "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,//Job concurrency
                  "throttle": false//Throttling
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    • Hologres tablosu için DDL deyimi aşağıdaki gibidir.

      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;
  • Bölümlenmiş tablo yapılandırma

    Not
    • Hologres yalnızca LIST bölümlendirmelerini destekler. Yalnızca tek bir bölümlendirme sütunu desteklenir ve sütun INT4 veya TEXT türünde olmalıdır.

    • Bu parametrenin tablo DDL'sindeki bölüm yapılandırmasıyla eşleştiğinden emin olun.

    • MySQL'den oluşturulan verilerin bir Hologres bölümlenmiş tablosunun alt tablolarına senkronize edilmesini yapılandırın.

      {
        "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>",//MySQL primary key field
              "encoding": "UTF-8"
            },
            "name": "Reader",
            "category": "reader"
          },
          {
            "stepType": "holo",
            "parameter": {
              "selectedDatabase": "public",
              "writeMode": "insert",
              "maxConnectionCount": 9,
              "partition": "ds=20201215",//Hologres partition key
              "truncate": "false",
              "datasource": "<holo_sink_name>",//Hologres data source name
              "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,//Job concurrency
            "throttle": false//Throttling
          }
        },
        "order": {
          "hops": [
            {
              "from": "Reader",
              "to": "Writer"
            }
          ]
        }
      }
    • Hologres tablosunun DDL deyimi aşağıdaki gibidir.

      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;

Writer betik parametreleri

Temel parametreler

Parametre

Açıklama

Gerekli

Varsayılan değer

database

Hologres örneğindeki veritabanının adı.

Evet

Yok

table

Hologres tablosunun adı. Tablo adında şema adları desteklenir, örneğin schema_name.table_name.

Evet

Yok

writeMode

Yazma modu. Dört mod desteklenir: INSERT, COPY, FIXED_COPY (Hologres >= 1,1 gerekir) ve STAGE (Hologres >= 4,1,0 gerekir). Daha fazla bilgi için Çalışma mekanizması bölümündeki yazma modu açıklamasına bakın. Toplu senkronizasyon için STAGE veya FIXED_COPY, gerçek zamanlı senaryolar (veri geri çekme dahil) için ise INSERT kullanmanızı öneririz.

Evet

Yok

conflictMode

Çakışma çözümleme modu. Geçerli değerler: Replace (tam satır güncelleme), Update (kısmi sütun güncelleme) ve Ignore (yeni veriyi yoksay). Daha fazla bilgi için bkz. Çalışma mekanizması. Bu parametre yalnızca birincil anahtarı olan tablolarda etkilidir.

Evet

Yok

column

Hedef tablonun veri sütunları. Sütunlar, hedef tablonun birincil anahtar kümesini içermelidir (seri otomatik artan birincil anahtarlar ve oluşturulmuş sütunlar hariç). ["*"] tüm sütunları ifade eder.

Evet

Yok

partition

Bölümlenmiş tablolar için bu parametre, bölümlendirme sütununu ve ilgili değerini column=value biçiminde belirtir. Bu parametre yapılandırıldıktan sonra Writer otomatik olarak bir alt tablo oluşturur (yoksa) ve verileri ilgili alt tabloya yazar.

Not
  • Hologres yalnızca LIST bölümlendirmelerini destekler. Yalnızca tek bir bölümlendirme sütunu desteklenir ve sütun INT4, BIGINT, DATE veya TEXT türünde olmalıdır.

  • Bu parametrenin tablo DDL'sindeki bölüm yapılandırmasıyla eşleştiğinden emin olun.

  • STAGE modu ve FIXED_COPY modu, verilerin doğrudan bölümlenmiş bir üst tabloya yazılmasını desteklemez. Partition parametresini belirtmeniz gerekir.

Hayır

Boş, bölümlenmemiş tabloyu ifade eder

reShuffleByDistributionKey

Hologres'te birincil anahtar tablolarına yapılan toplu içe aktarmalar varsayılan olarak tablo kilitlerini tetikler ve bu durum birden çok bağlantının eşzamanlı yazma kapasitesini sınırlar. reShuffle özelliğini etkinleştirmek, toplu senkronizasyon senaryolarındaki farklı görevlerin dağıtım anahtarlarına göre belirli Holo parçalarına veri yazmasına olanak tanır; bu da eşzamanlı toplu yazmayı etkinleştirir ve yazma performansını önemli ölçüde artırır. JDBC modundaki geleneksel gerçek zamanlı yazmalara kıyasla bu özellik Holo sunucusundaki yükü azaltır ve yazma verimliliğini daha da artırır.

Önemli

Bu özellik yalnızca serverless kaynak gruplarında kullanılabilir.

Hayır

false

truncate

Hologres tablosuna veri yazmadan önce hedef tablonun temizlenip temizlenmeyeceğini belirtir.

  • true: Hedef tabloyu temizler.

    Not
    • Şu anda yalnızca bölümlenmemiş tablolar ve statik bölümlenmiş tablolar truncate edilebilir. Dinamik bölümlenmiş tablolar truncate edilemez. Dinamik bölümlenmiş bir tablo kullanırsanız ve bu parametreyi true olarak ayarlarsanız senkronizasyon görevi hata ile sonlanır.

    • Statik bölümlenmiş bir tablo kullanırsanız ve bu parametreyi true olarak ayarlarsanız yalnızca bölüm alt tablosundaki veriler truncate edilir. Üst tablodaki veriler truncate edilmez.

  • false: Hedef tabloyu temizlemez.

Hayır

false

partitionFormat

Dinamik bölüm değerleri için biçimlendirme kuralı. Date türündeki kaynak veriler için yyyyMMdd gibi bir biçim belirtin. Dize türündeki kaynak veriler için 2:5 gibi bir alt dize kuralı belirtin; bu substring(2, 2+5) anlamına gelir.

Hayır

Yok

preSql

Veri yazmadan önce yürütülecek SQL deyimlerinin listesi. Bölümlenmiş bir tablonun üst tablosunda yürütme desteklenmez.

Hayır

Yok

postSql

Veri yazdıktan sonra yürütülecek SQL deyimlerinin listesi.

Hayır

Yok

Bağlantı ve performans parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

maxConnectionCount

Yazma için eşzamanlı bağlantı sayısı. Bu değer, gerçek görev eşzamanlılığına (maxConnectionCount / actualConcurrent) göre otomatik olarak ayarlanır. Bu parametreyi görev eşzamanlılığının 1 ila 3 katı olacak şekilde ayarlamanızı öneririz.

Hayır

3

maxRetryCount

Başarısızlık durumunda yeniden deneme sayısı.

Hayır

10

jdbcReadTimeout

JDBC bağlantı zaman aşımı süresi. Birim: saniye.

Hayır

120

maxCommitSize

Bayt cinsinden taahhüt başına maksimum bayt sayısı.

Hayır

2097152 (2 MB)

maxCommitCount

Taahhüt başına maksimum kayıt sayısı.

Hayır

256

reShuffleByDistributionKey

Hologres'te birincil anahtar tablolarına yapılan toplu içe aktarmalar varsayılan olarak tablo kilitlerini tetikler ve bu durum birden çok bağlantı arasında eşzamanlı yazma kapasitesini sınırlar. reShuffle özelliğini etkinleştirmek, toplu senkronizasyon senaryolarında farklı görevlerin dağıtım anahtarına göre belirli Holo parçalarına veri yazmasına olanak tanır. Bu, eşzamanlı toplu yazmayı etkinleştirir ve yazma performansını önemli ölçüde artırır. JDBC modundaki geleneksel gerçek zamanlı yazmalara kıyasla bu özelliği etkinleştirmek Holo sunucusundaki yükü azaltır ve yazma verimliliğini daha da artırır.

Önemli

Bu özellik yalnızca serverless kaynak gruplarında kullanılabilir.

Hayır

false

removeU0000InTextColumnValue

Metin sütunu değerlerinden karakterlerinin kaldırılıp kaldırılmayacağını belirtir. PostgreSQL, bu karakterin TEXT veri türünde depolanmasını desteklemez.

Hayır

true

Hologres Serverless Computing parametreleri

Aşağıdaki parametreler bir Hologres örneğinin Serverless Computing özelliğini kontrol eder. Reader için sorgu okumalarını ve Writer için STAGE modunda INSERT FROM Stage işlemlerini hızlandırabilirler.

Not : Hologres Serverless Computing ve DataWorks serverless kaynak grupları farklı kavramlardır. İlki bir Hologres örneği içindeki esnek hesaplama özelliğini ifade ederken ikincisi DataWorks'ün senkronizasyon görevlerini çalıştırmak için kullandığı zamanlama kaynaklarını ifade eder.
Kullanım notları : Reader için tüm modlar desteklenir. Writer için yalnızca STAGE modu desteklenir.


Parametre


Açıklama


Gerekli


Varsayılan değer


enableServerlessComputing


Hologres Serverless Computing hızlandırmasının etkinleştirilip etkinleştirilmeyeceğini belirtir.


Hayır


false


serverlessComputingQueryPriority


Serverless Computing için sorgu önceliği. Geçerli değerler: 1 ila 10. Daha büyük bir değer daha yüksek bir önceliği ifade eder.


Hayır


3


serverlessComputingRequiredCores


Serverless Computing için istenen çekirdek sayısı. Motorun otomatik olarak karar vermesi için bu parametreyi 0 olarak ayarlayın.


Hayır


Yok (ayarlanmadı)

FIXED_COPY moduna özel parametreler


Parametre


Açıklama


Gerekli


Varsayılan değer


isBinaryFormat


Veri aktarımı için ikili biçimin kullanılıp kullanılmayacağını belirtir. Bu parametre true olarak ayarlanırsa daha yüksek aktarım verimliliği sağlayan ikili biçim kullanılır. Bu parametre false olarak ayarlanırsa metin (CSV) biçimi kullanılır.


Hayır


true


checkRecordBeforePut


Yazmadan önce kayıtların doğrulanıp doğrulanmayacağını belirtir; buna tür kontrolleri ve uzunluk kontrolleri dahildir. Bu parametre etkinleştirilirse kirli veriler istemci tarafında önceden tespit edilebilir.


Hayır


true


maxCellBufferSize


Tek bir veri satırı için maksimum arabellek boyutu (bayt cinsinden). Arabelleğin eksiksiz bir satırı tutabildiğinden emin olun. Aksi takdirde yazma işlemi başarısız olur.


Hayır


10485760 (10 MB)

STAGE moduna özel parametreler


Parametre


Açıklama


Gerekli


Varsayılan değer


stageTTL


Dahili aşamanın yaşam süresi (TTL), saniye cinsinden. Aşama bu sürenin sonunda otomatik olarak temizlenir.


Hayır


86400 (1 gün)


stageFileSizeLimit


Tek bir aşama dosyasının maksimum boyutu (bayt cinsinden). Bu sınır aşıldığında otomatik olarak yeni bir dosya oluşturulur.


Hayır


67108864 (64 MB)


stageMaxBatchSize


Kayıt yazma için bir Arrow toplu işindeki maksimum satır sayısı. Belirtilen satır sayısı biriktiğinde her seferinde bir Arrow RecordBatch yazılır.


Hayır


8192


stageCompress


Arrow LZ4 sıkıştırmasının etkinleştirilip etkinleştirilmeyeceğini belirtir. Bu özellik etkinleştirilirse aşama depolama alanı ve ağ aktarım hacmi önemli ölçüde azalır. Bu özellik Hologres >= 4,2,8 gerektirir. Sürüm gereksinimi karşılanmazsa sıkıştırma otomatik olarak devre dışı bırakılır.


Hayır


true

Gelişmiş parametreler


Parametre


Açıklama


Gerekli


Varsayılan değer


useArrow


Arrow sütunlu yazma yolunun kullanılıp kullanılmayacağını belirtir. Bu parametre true olarak ayarlanırsa ve Hologres sürümü >= 4,1,0 ise STAGE yazma modu otomatik olarak etkinleştirilir. Hologres Writer, herhangi bir yukarı akış reader tarafından üretilen Arrow biçimli verileri (ArrowTabularRecord) alabilir ve ayrıca aşamaya yazmak üzere otomatik olarak Arrow biçimine dönüştürülen standart satır tabanlı kayıtları da alabilir. Daha fazla bilgi için bkz. Arrow sütunlu yazma.


Hayır


false


default.enable


NOT NULL olarak tanımlanan ancak değer belirtilmeyen sütunlar için varsayılan değerlerin otomatik olarak doldurulup doldurulmayacağını belirtir.


Hayır


true


enableWriteBitTypeWithString


BIT verilerinin dize olarak yazılmasına izin verilip verilmeyeceğini belirtir.


Hayır


false


holoClient


Map biçiminde Holo Client için gelişmiş yapılandırma öğeleri. Altta yatan HoloConfig'in herhangi bir parametresini ayarlayabilirsiniz. Örnek: {"writeBatchSize": 512}.


Hayır


Yok