ByteHouse 是一款火山引擎云原生数据仓库,为您提供极速分析体验,能够支撑实时数据分析和海量数据离线分析等场景。
ByteHouse(企业版)是基于开源 ClickHouse 的企业级分析型数据库,支持用户交互式分析 PB 级别数据,通过多种自研表引擎,灵活支持各类数据分析和应用。
DataSail 中的 ByteHouse 企业版数据源配置,为您提供读取和写入 ByteHouse 的双向通道数据集成能力,实现不同数据源与 ByteHouse 之间进行数据传输。
本文为您介绍 DataSail 的 ByteHouse 数据同步的能力支持情况。
支持火山引擎 ByteHouse 企业版(ByteHouse_CE)标品。开通服务详见快速开始。
数据字段类型 | 支持情况 |
---|---|
Int | 支持 |
Uint | 支持 |
Float | 支持 |
String | 支持 |
Time | 支持 |
Array | 支持单层 Array 类型,不支持 Array 的嵌套类型 |
Map | 支持 |
下文将为您介绍数据集成任务配置的详细流程。
新建数据源操作详见配置数据源,下面为您介绍火山引擎 ByteHouse 企业版数据源不同接入方式的配置信息。
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
火山引擎 ByteHouse 企业版方式接入:
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | ByteHouse 企业版 |
*接入方式 | 火山引擎 ByteHouse 企业版 |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*集群 | 下拉选择已创建的 ByteHouse 企业版集群名称。 |
*数据库名 | 下拉选择已在 ByteHouse 企业版中创建的数据库名称信息。 |
*用户名 | 有权限访问数据库的用户名信息。 |
*密码 | 输入用户名对应的密码信息。 |
连接串方式接入
注意
连接串方式配置数据源时,暂不支持配置数据写入 ByteHouse_CE。
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | ByteHouse 企业版 |
*接入方式 | 连接串 |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
JDBC URL | 您可前往 ByteHouse CE 控制台 集群管理 > 集群列表 > 集群名称 > 连接集群 页签中查看 JDBC 连接地址。 说明 若该数据源用于数据同步解决方案写入 ByteHouse CE 时,JDBC URL为必填项。 |
*API Server | 根据集群所在地域,选择填写 ByteHouse CE 集群的 API Server 地址: 说明 连接串接入方式下,数据集成任务支持您跨 Region 读取 ByteHouse CE 集群数据,您需保障网络互通即可。 |
*集群 | 输入已创建的 ByteHouse 企业版集群名称。 |
*数据库名 | 下拉选择已在 ByteHouse 企业版中创建的数据库名称信息。 |
*用户名 | 有权限访问数据库的用户名信息。 |
*密码 | 输入用户名对应的密码信息。 |
ByteHouse 企业版(ByteHouse_CE)数据源测试连通性成功后,进入到数据开发界面,开始新建 ByteHouse 相关通道任务。
新建任务方式详见离线数据同步、流式数据同步。
任务创建成功后,您可根据实际场景,配置 ByteHouse_CE 批式读、ByteHouse_CE 批式写或 ByteHouse_CE 流式写等通道任务。
数据来源选择 ByteHouse_CE,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*数据源类型 | 下拉选择 ByteHouse_CE 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 ByteHouse_CE 数据源,下拉可选。 |
*数据表 | 选择需要采集的数据表名称信息,目前单个任务只支持将单表的数据采集到一个目标表中。 |
数据过滤 | 可自定义配置全量或增量读取数据源:
|
切分键 | 根据配置的字段进行数据分片,建议使用主键或有索引的列作为切分键:
说明 目前仅支持类型为整型或字符串的字段作为切分键。切分键设置推荐详见4.6 切分键应用推荐。 |
数据来源选择 ByteHouse_CE,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*目标类型 | 数据去向目标类型选择 ByteHouse_CE。 |
*数据源名称 | 已在数据源管理界面注册的 ByteHouse_CE 数据源,下拉可选。 |
*数据表 | 数据源下所属需数据写入的表名,下拉可选。 |
*生命周期 | 展示所选目标数据表的生命周期。 |
*写入方式 | 支持选择 CFS、JDBC 方式写入, 注意 JDBC 写入方式,必须在数据源配置时,配置数据源的 JDBC URL 信息。详见4.1 数据源注册。 |
*分区设置 | 根据所选数据表,自动获取表分区字段信息。 分区内容可设置具体时间分区粒度,可以用表达式:${date}、${hour}等参数变量表示;也支持写入动态分区类型,即根据源端字段值内容,进行动态写入,动态分区值必须存在于源端 Columns 中。 说明
|
数据来源选择 ByteHouse_CE,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*目标类型 | 数据去向目标类型选择 ByteHouse_CE。 |
*数据源名称 | 已在数据源管理界面注册的 ByteHouse_CE 数据源,下拉可选。 |
*数据表 | 数据源下所属需数据写入的表名,下拉可选。 |
写入前准备语句 | 在首次执行该流式数据集成任务或重启任务前,需要率先执行的 SQL 语句。 说明 可视化通道任务配置中,只允许执行一条写入前准备语句。 |
*生命周期 | 展示所选目标数据表的生命周期。 |
*写入方式 | 支持选择 CFS、JDBC 方式写入, 注意 JDBC 写入方式,必须在数据源配置时,配置数据源的 JDBC URL 信息。详见4.1 数据源注册。 |
*分区设置 | 根据所选数据表,自动获取表分区字段信息。 分区内容可设置具体时间分区粒度,可以用表达式:${date}、${hour}等参数变量表示;也支持写入动态分区类型,即根据源端字段值内容,进行动态写入,动态分区值必须存在于源端 Columns 中。 说明
|
数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
字段映射支持选择基础模式和转换模式配置映射:
注意
基础模式和转换模式不支持互相切换,模式切换后,将清空现有字段映射中所有配置信息,一旦切换无法撤销,需谨慎操作。
转换模式:
字段映射支持数据转换,您可根据实际业务需求进行配置,将源端采集的数据,事先通过数据转换后,以指定格式输入到目标端数据库中。
转换模式详细操作说明详见4.1 转换模式
在转换模式中,你可依次配置:来源节点、数据转换、目标节点信息:
配置节点 | 说明 |
---|---|
来源节点 | 配置数据来源 Source 节点信息:
配置完成后,单击确认按钮,完成来源节点配置。 |
数据转换 | 单击数据转换右侧添加按钮,选择 SQL 转换方式,配置转换信息和规则:
配置完成后,单击确认按钮,完成数据转换节点配置。SQL 脚本示例详见4.1.2 添加转换节点。 |
目标节点 | 配置目标节点 Sink 信息:
配置完成后,单击确认按钮,完成目标节点配置。 |
基础模式:
您可通过以下三种方式操作字段映射关系:
说明
自动添加字段映射时,默认不会映射来源表中的分区键字段。若有需要,您可通过手动添加的方式,将分区键字段的映射配置上。
说明
数据写入 ByteHouse CE 时,当 ByteHouse CE 表引擎设置为 HaUniqueMergeTree,且已在 ByteHouse CE 数据查询控制台中完成了以下表配置变更:
变更完成后,您可以根据实际业务需求,灵活选择只更新数据表中的部分列。您只需要配置需要更新的列映射,对于未设定的列,它们将保持原有的值,或是默认值。这种灵活的数据更新方式,可以帮助您更高效地管理和维护数据,减少不必要的操作,提升工作效率。
ByteHouse_CE 数据源支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,或当数据源类型暂不支持可视化配置时,您可通过任务脚本的方式,按照统一的 Json 格式,编写 ByteHouse_CE Reader 和 ByteHouse_CE Writer 参数脚本代码,来运行数据集成任务。
进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式。
根据实际情况替换 ByteHouse_CE 批式读相应参数,ByteHouse_CE 批式读脚本示例如下:
{ "version": "0.2", "type": "batch", "reader": { "type": "bytehouse_ce", "datasource_id": {datasource_id}, "parameter": { "columns": [ { "name": "name_sample", "type": "type_sample" } ], "splitKeys": [ "id" ], "sql_filter": "", "table_name": "table_sample" } }, // writer config "writer": { ... }, // common config "common": { ... } }
Reader 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:
参数名称 | 参数含义 |
---|---|
*type | 数据源类型,对于 ByteHouse_CE 类型,填写: bytehouse_ce |
*datasource_id | 注册的 ByteHouse_CE 数据源 ID。可以在项目控制台 > 数据源管理界面中查找。 |
*table_name | 填写需要读取数据的 Bytehouse_CE 表名称。 |
splitKeys | 根据配置的字段进行数据分片,建议使用主键或有索引的列作为切分键,同步任务会启动并发任务进行数据同步,提高同步速率:
说明 目前仅支持类型为整型或字符串的字段作为切分键。 |
sql_filter | 输入同步数据的筛选条件,同步数据时只会同步符合过滤条件的数据,直接填写关键词 where 后的过滤 SQL 语句即可。
|
*columns | 配置表中需要同步的列名集合,使用 JSON 的数组描述字段信息。
注意
|
根据实际情况替换 ByteHouse_CE 批式写相应参数,ByteHouse_CE 批式写脚本示例如下:
// ************************************** // 变量使用规则如下: // 1.自定义参数变量: {{}}, 比如{{number}} // 2.系统时间变量${}, 比如 ${date}、${hour} // ************************************** { "version": "0.2", "type": "batch", "reader": { ... }, "writer": { "type": "bytehouse_ce", "datasource_id": {datasource_id}, "parameter": { "ch_table": "ch_table_sample", "partition": "partition1=value1,partition2=value2", "bh_ce_partition_type": "partition_type1,partition_type2", "columns": [ { "name": "name_sample", "type": "type_sample" } ] } }, "common": { ... } }
Writer 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:
参数名称 | 参数含义 |
---|---|
*type | 数据源类型,对于 ByteHouse_CE 类型,填写: bytehouse_ce |
*datasource_id | 注册的 ByteHouse_CE 数据源 ID。可以在项目控制台 > 数据源管理界面中查找。 |
*ch_table | 填写需要写入数据的 Bytehouse_CE 表名称。 |
*partition | 写入的分区,key=value 的格式,多级分区按顺序,并用英文逗号分隔。 |
*bh_ce_partition_type | 写入的分区字段类型,多级分区按照顺序英文逗号分隔。 |
*columns | 配置表中需要同步的列名集合,使用 JSON 的数组描述字段信息。
注意
|
ByteHouse CE 高级参数配置与 ByteHouse CDW 高级参数配置一致,详见4.5 高级参数说明
注意
其中写入 ByteHouse CDW 的高级参数:job.writer.loading_mode,在写入 ByteHouse CE 时不适用。
集成任务读取 ByteHouse CE 表时,若表中的数据量比较大,您可以通过设置合理的切分键、并发数等参数,来提高数据读取效率。
目前切分键支持整数和字符串字段类型,以下为您推荐切分键设置方案: