Doris 连接器


Doris 连接器

上级文档:连接器

BitSail Doris连接器支持批式和流式写doris,其支持的主要功能点如下

  • 使用StreamLoad方式写Doris表
  • 支持分区创建再写入
  • 支持多种table mode

依赖引入

<dependency>
   <groupId>com.bytedance.bitsail</groupId>
   <artifactId>bitsail-connector-doris</artifactId>
   <version>${revision}</version>
</dependency>

Doris写入

支持的数据类型

写连接器使用 JSON 或者 CSV 格式传输数据,支持常见的 Doris 数据类型:

  • CHAR
  • VARCHAR
  • TEXT
  • BOOLEAN
  • BINARY
  • VARBINARY
  • DECIMAL
  • DECIMALV2
  • INT
  • TINYINT
  • SMALLINT
  • INTEGER
  • INTERVAL_YEAR_MONTH
  • INTERVAL_DAY_TIME
  • BIGINT
  • LARGEINT
  • FLOAT
  • DOUBLE
  • DATE
  • DATETIME

主要参数

写连接器参数在job.writer中配置,实际使用时请注意路径前缀。示例:

{
  "job": {
    "writer": {
      "class": "com.bytedance.bitsail.connector.doris.sink.DorisSink",
      "db_name": "test_db",
      "table_name": "test_doris_table"
    }
  }
}

必需参数

参数名称是否必填参数枚举值参数含义
classDoris写连接器类型, com.bytedance.bitsail.connector.doris.sink.DorisSink
fe_hostsDoris FE地址, 多个地址用逗号分隔
mysql_hostsJDBC连接Doris的地址, 多个地址用逗号分隔
userDoris账户
passwordDoris密码,可为空
db_name要写入的doris库
table_name要写入的doris表
partitions分区表必需要写入的分区
table_has_partition非分区表必需非分区表填写true

注意,partitions格式要求如下:

  1. 可写入多个partition,每个partition
  2. 每个partition内需要有:
    1. name: 要写入的分区名
    2. start_range, end_range: 该分区范围

partitions示例:

{
  "partitions": [
    {
      "name": "p20220210_03",
      "start_range": [
        "2022-02-10",
        "3"
      ],
      "end_range": [
        "2022-02-10",
        "4"
      ]
    },
    {
      "name": "p20220211_03",
      "start_range": [
        "2022-02-11",
        "3"
      ],
      "end_range": [
        "2022-02-11",
        "4"
      ]
    }
  ]
}

可选参数

参数名称是否必填参数枚举值参数含义
writer_parallelism_num指定Doris写并发
sink_flush_interval_msUpsert模式下的flush间隔, 默认5000 ms
sink_max_retries写入的最大重试次数,默认3
sink_buffer_size写入buffer最大值,默认 20971520 bytes (20MB)
sink_buffer_count写入buffer的最大条数,默认100000
sink_enable_delete是否支持delete事件同步
sink_write_mode目前只支持以下几种:
STREAMING_UPSERT
BATCH_UPSERT
BATCH_REPLACE
写入模式
stream_load_properties追加在streamload url后的参数,map<string,string>格式
load_contend_typecsv
json
streamload使用的格式,默认json
csv_field_delimitercsv格式的行内分隔符, 默认逗号 ","
csv_line_delimitercsv格式的行间分隔符, 默认 "\n"

sink_write_mode 参数可选值:

  • STREAMING_UPSERT: 流式upsert写入
  • BATCH_UPSERT: 批式upsert写入
  • BATCH_REPLACE: 批式replace写入

相关文档

配置示例文档:Doris 连接器示例