mirror of
https://github.com/alibaba/DataX.git
synced 2025-05-10 09:09:53 +08:00

datax save save save save add official documenations add doc add doc fix internationalization fix guava
171 lines
5.5 KiB
Markdown
171 lines
5.5 KiB
Markdown
# DataX DatabendWriter
|
||
[简体中文](./databendwriter-CN.md) | [English](./databendwriter.md)
|
||
|
||
## 1 快速介绍
|
||
|
||
Databend Writer 是一个 DataX 的插件,用于从 DataX 中写入数据到 Databend 表中。
|
||
该插件基于[databend JDBC driver](https://github.com/databendcloud/databend-jdbc) ,它使用 [RESTful http protocol](https://databend.rs/doc/integrations/api/rest)
|
||
在开源的 databend 和 [databend cloud](https://app.databend.com/) 上执行查询。
|
||
|
||
在每个写入批次中,databend writer 将批量数据上传到内部的 S3 stage,然后执行相应的 insert SQL 将数据上传到 databend 表中。
|
||
|
||
为了最佳的用户体验,如果您使用的是 databend 社区版本,您应该尝试采用 [S3](https://aws.amazon.com/s3/)/[minio](https://min.io/)/[OSS](https://www.alibabacloud.com/product/object-storage-service) 作为其底层存储层,因为
|
||
它们支持预签名上传操作,否则您可能会在数据传输上浪费不必要的成本。
|
||
|
||
您可以在[文档](https://databend.rs/doc/deploy/deploying-databend)中了解更多详细信息
|
||
|
||
## 2 实现原理
|
||
|
||
Databend Writer 将使用 DataX 从 DataX Reader 中获取生成的记录,并将记录批量插入到 databend 表中指定的列中。
|
||
|
||
## 3 功能说明
|
||
|
||
### 3.1 配置样例
|
||
|
||
* 以下配置将从内存中读取一些生成的数据,并将数据上传到databend表中
|
||
|
||
#### 准备工作
|
||
```sql
|
||
--- create table in databend
|
||
drop table if exists datax.sample1;
|
||
drop database if exists datax;
|
||
create database if not exists datax;
|
||
create table if not exsits datax.sample1(a string, b int64, c date, d timestamp, e bool, f string, g variant);
|
||
```
|
||
|
||
#### 配置样例
|
||
```json
|
||
{
|
||
"job": {
|
||
"content": [
|
||
{
|
||
"reader": {
|
||
"name": "streamreader",
|
||
"parameter": {
|
||
"column" : [
|
||
{
|
||
"value": "DataX",
|
||
"type": "string"
|
||
},
|
||
{
|
||
"value": 19880808,
|
||
"type": "long"
|
||
},
|
||
{
|
||
"value": "1926-08-08 08:08:08",
|
||
"type": "date"
|
||
},
|
||
{
|
||
"value": "1988-08-08 08:08:08",
|
||
"type": "date"
|
||
},
|
||
{
|
||
"value": true,
|
||
"type": "bool"
|
||
},
|
||
{
|
||
"value": "test",
|
||
"type": "bytes"
|
||
},
|
||
{
|
||
"value": "{\"type\": \"variant\", \"value\": \"test\"}",
|
||
"type": "string"
|
||
}
|
||
|
||
],
|
||
"sliceRecordCount": 10000
|
||
}
|
||
},
|
||
"writer": {
|
||
"name": "databendwriter",
|
||
"parameter": {
|
||
"username": "databend",
|
||
"password": "databend",
|
||
"column": ["a", "b", "c", "d", "e", "f", "g"],
|
||
"batchSize": 1000,
|
||
"preSql": [
|
||
],
|
||
"postSql": [
|
||
],
|
||
"connection": [
|
||
{
|
||
"jdbcUrl": "jdbc:databend://localhost:8000/datax",
|
||
"table": [
|
||
"sample1"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"setting": {
|
||
"speed": {
|
||
"channel": 1
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.2 参数说明
|
||
* jdbcUrl
|
||
* 描述: JDBC 数据源 url。请参阅仓库中的详细[文档](https://github.com/databendcloud/databend-jdbc)
|
||
* 必选: 是
|
||
* 默认值: 无
|
||
* 示例: jdbc:databend://localhost:8000/datax
|
||
* username
|
||
* 描述: JDBC 数据源用户名
|
||
* 必选: 是
|
||
* 默认值: 无
|
||
* 示例: databend
|
||
* password
|
||
* 描述: JDBC 数据源密码
|
||
* 必选: 是
|
||
* 默认值: 无
|
||
* 示例: databend
|
||
* table
|
||
* 描述: 表名的集合,table应该包含column参数中的所有列。
|
||
* 必选: 是
|
||
* 默认值: 无
|
||
* 示例: ["sample1"]
|
||
* column
|
||
* 描述: 表中的列名集合,字段顺序应该与reader的record中的column类型对应
|
||
* 必选: 是
|
||
* 默认值: 无
|
||
* 示例: ["a", "b", "c", "d", "e", "f", "g"]
|
||
* batchSize
|
||
* 描述: 每个批次的记录数
|
||
* 必选: 否
|
||
* 默认值: 1000
|
||
* 示例: 1000
|
||
* preSql
|
||
* 描述: 在写入数据之前执行的SQL语句
|
||
* 必选: 否
|
||
* 默认值: 无
|
||
* 示例: ["delete from datax.sample1"]
|
||
* postSql
|
||
* 描述: 在写入数据之后执行的SQL语句
|
||
* 必选: 否
|
||
* 默认值: 无
|
||
* 示例: ["select count(*) from datax.sample1"]
|
||
|
||
### 3.3 类型转化
|
||
DataX中的数据类型可以转换为databend中的相应数据类型。下表显示了两种类型之间的对应关系。
|
||
|
||
| DataX 内部类型 | Databend 数据类型 |
|
||
|------------|-----------------------------------------------------------|
|
||
| INT | TINYINT, INT8, SMALLINT, INT16, INT, INT32, BIGINT, INT64 |
|
||
| LONG | TINYINT, INT8, SMALLINT, INT16, INT, INT32, BIGINT, INT64 |
|
||
| STRING | STRING, VARCHAR |
|
||
| DOUBLE | FLOAT, DOUBLE |
|
||
| BOOL | BOOLEAN, BOOL |
|
||
| DATE | DATE, TIMESTAMP |
|
||
| BYTES | STRING, VARCHAR |
|
||
|
||
## 4 性能测试
|
||
|
||
## 5 约束限制
|
||
目前,复杂数据类型支持不稳定,如果您想使用复杂数据类型,例如元组,数组,请检查databend和jdbc驱动程序的进一步版本。
|
||
|
||
## FAQ |