近期,BitSail 社区发布了 Contributor 激励计划第一期,包含众多 issue,吸引了很多热衷开源的小伙伴的加入,详情可查看👉https://mp.weixin.qq.com/s/GkGs-EqTV-szvzndMYrG1g
为了扩展 BitSail 的使用场景、适配用户的需求,BitSail 社区新增了十余 issue 来优化 BitSail 的功能。这次的 issue 包含了类型系统优化、connector 功能支持、测试覆盖等方面,欢迎大家前来支持贡献!
下面介绍部分新增 issue,这些 issue 在各方面对 BitSail 进行了优化。
- 使用优化:Mysql Reader 支持 schema 发现
用户在使用 Mysql reader 时,需要在任务配置中指定 schema,即要读取列的列名和类型。Mysql reader 会根据用户配置拼出一个 select 语句,用以从 mysql 拉取数据。
这种方式的好处在于可以灵活地选择 mysql 中的部分列进行读取。但是在实际场景中,用户往往需要读取 mysql 表中的全部列,这种时候 schema 配置就成为了一种负担。下图展示了一个读取包含 4 列数据 mysql 表的 schema 配置。
{
"job":{
"reader":{
// 仅展示schema配置部分
"columns":[
{
"name":"id",
"type":"bigint"
},
{
"name":"name",
"type":"varchar"
},
{
"name":"int_info",
"type":"int"
},
{
"name":"double_info",
"type":"double"
},
{
"name":"bytes_info",
"type":"binary"
}
]
}
}
}
因此,本次 BitSail 社区新增一个 issue 用于优化 Mysql reader 的 schema 配置,希望能在用户未配置 schema 信息时直接使用 mysql 表的元信息。
https://github.com/bytedance/bitsail/issues/248
类似的,社区也新增了一个 issue 用于支持在 Hive writer 中自动获取 schema。
https://github.com/bytedance/bitsail/issues/249
- 接口优化:批场景下的分片分配支持
为了支持多并发读取数据,目前主流做法是将数据源分成多个分片后分配给多个子任务并发读取。BitSail 定义了SourceSplitCoordinator
接口用以支持这样的分片过程。
在批式场景中,数据源往往是静态的,reader 通过连接数据源生成所有分片后,即可制定一份分片的分发计划。
本次社区新增了一个 issue 用于构建一个支持如上批式场景的SourceSplitCoordinator
。
https://github.com/bytedance/bitsail/issues/247
- 文档优化:并行度计算
BitSail 支持通过任务配置设置 reader 和 writer 的并行度,但是目前没有详细的文档进行说明。因此本次新增一个 issue 希望能添加文档介绍 BitSail 的并行度设置和计算。
目前所有文档都会在BitSail主页进行展示。
https://bytedance.github.io/bitsail/zh/
致谢
BitSail 社区目前已经有多位贡献者,在此也对各位贡献者和其他朋友由衷地表示感谢。期待更多开发者、技术爱好者共同建设 BitSail 社区!
更多激励计划任务请关注 issue 链接:https://github.com/bytedance/bitsail/issues