内表数据导入
本章节将指导您如何将外部数据同步导入到 Aloudata CAN 指标平台中,当前 Aloudata CAN 支持 Starrocks、Doris 两种计算引擎。本文以将数据从PostgreSQL导入StarRocks为例,使用 SMT+DataX 的方式导入数据,接下来将是具体的操作步骤。更多导入方式参考:导入方案
1. 前置条件
提示
StarRocks migration tool(简称 SMT)是 StarRocks 提供的数据迁移工具,参考:SMT。本章节使用 SMT快速在 StarRocks 中创建表。
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台。详情参考:DataX。 本章节使用 DataX 用于实现数据从 PostgreSQL 到 StarRocks 的同步
2. 操作步骤
PG 源表数据
- 在 PG中创建一张表名称为 user,如下为建表语句
CREATE TABLE `user` (
`user_id` int(11) NULL COMMENT "",
`user_name` varchar(50) NULL COMMENT "",
`sex` varchar(50) NULL COMMENT "",
`age` int(11) NULL COMMENT "",
`city` varchar(50) NULL COMMENT ""
)
- 在表中插入数据
NSERT INTO `user` (`user_id`, `user_name`, `sex`, `age`, `city`) VALUES
(1, 'Alice', 'Female', 28, 'New York'),
(2, 'Bob', 'Male', 34, 'Los Angeles'),
(3, 'Charlie', 'Male', 22, 'Chicago'),
(4, 'Diana', 'Female', 29, 'Houston'),
(5, 'Eve', 'Female', 35, 'Phoenix');
通过 SMT 工具生成 StarRocks 的建表语句
- 修改 smt 的配置文件
[db]
host = 192.168.1.1
port = 5432
user = xxx
password = xxx
type = pgsql
[other]
# number of backends in StarRocks
be_num = 3
# `decimal_v3` is supported since StarRocks-1.18.1
use_decimal_v3 = false
# directory to save the converted DDL SQL
output_dir = ./result
[table-rule.1]
# pattern to match databases for setting properties
database = db1
# pattern to match tables for setting properties
table = user
# pattern to match schemas for setting properties
schema = public
############################################
### flink sink configurations
### DO NOT set `connector`, `table-name`, `database-name`, they are auto-generated
############################################
flink.starrocks.jdbc-url=jdbc:mysql://192.168.1.1:9030
flink.starrocks.load-url= 192.168.1.1:8030
flink.starrocks.username=root
flink.starrocks.password=
flink.starrocks.sink.max-retries=10
flink.starrocks.sink.buffer-flush.interval-ms=15000
flink.starrocks.sink.properties.format=json
flink.starrocks.sink.properties.strip_outer_array=true
- 执行 starrocks-migrate-tool,所有建表语句都生成在 result 目录下。
$./starrocks-migrate-tool
$ls result
flink-create.1.sql smt.tar.gz starrocks-create.all.sql
flink-create.all.sql starrocks-create.1.sql
- 生成 StarRocks 表结构
准备 DataX 数据导入脚本
创建 DataX 导入脚本配置文件,命名 config.json
{
"job": {
"setting": {
"speed": {
"channel": 3
}
},
"content": [
{
"reader": {
"name": "postgresqlreader",
"parameter": {
"username": "root",
"password": "密码",
"connection": [
{
"table": [
"user"
],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/db1"
]
}
],
"column": [
"*"
]
}
},
"writer": {
"name": "starrockswriter",
"parameter": {
"username": "root",
"password": "密码",
"column": ["*"],
"preSql": [],
"postSql": [],
"connection": [
{
"table": ["user"],
"jdbcUrl": "jdbc:mysql://10.15.1.171:9030/",
}
],
"loadUrl": ["10.15.1.171:8030"],
"loadProps": {}
}
}
}
]
}
}