BitSail使用

简单介绍

BitSail 是字节跳动开源的基于分布式架构、性能卓越的数据集成引擎,支持多种异构数据源间的数据同步,提供批量、流式、增量等场景的全局数据集成解决方案。

使用方式

使用方式与seatunnel类似:
图片
配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"job": {
"common": {
"job_id": 312,
"instance_id": 3124,
"job_name": "BitSail_fake_to_print_test",
"user_name": "test"
},
"writer": {
"class": "com.bytedance.bitsail.connector.legacy.print.sink.PrintSink"
},
"reader": {
"class": "com.bytedance.bitsail.connector.legacy.fake.source.FakeSource",
"total_count": 300,
"rate": 1,
"random_null_rate": 0.1,
"columns": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
}
}

通过reader和writer配置source端和sink端,

数据处理流程如下,首先通过 Input Sources 拉取源端数据,然后通过中间框架层处理,最后通过 Output Sinks 将数据写入目标端

在框架层,提供了丰富的基础功能,并对所有同步场景生效,比如脏数据收集、自动并发度计算、流控、任务监控等

在数据同步场景上,全面覆盖批式、流式、增量场景。

不足

在目前的官方文档中,没有看到关于数据转换的介绍,源代码中也只看到了两个转换方法
图片
但配置后,也未生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"job": {
"common": {
"job_id": 312,
"instance_id": 3124,
"job_name": "BitSail_fake_to_print_test",
"user_name": "test"
},
"writer": {
"class": "com.bytedance.bitsail.connector.legacy.print.sink.PrintSink"
},
"transform": [
{
"transform_name": "EncryptFieldMapTransformer",
"field_name": "name"
}
],
"reader": {
"class": "com.bytedance.bitsail.connector.legacy.fake.source.FakeSource",
"total_count": 300,
"rate": 1,
"random_null_rate": 0.1,
"columns": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
}
}