Lighting web 测试使用

作者: WalterWj 原文来源: https://tidb.net/blog/f5fea641

背景

如果不想使用 Lighting 命令行模式来导入数据,而是集中到自己的管理平台上,那么可以将 lighting 启动为一个服务,然后调用即可。

API

lightning web 模式 api:

  1. POST /tasks,body 是配置文件,返回 json,字段 id 表示 task id。
  2. GET /progress/task

手动测试

启用服务器模式

方式有如下几种:

  1. 在启动 tidb-lightning 时加上命令行参数 --server-mode
tiup tidb-lightning --server-mode --status-addr :8289
  1. 在配置文件中设置 lightning.server-mode
[lightning]
server-mode = true
status-addr = ':8289'

Web Ui

可以看到,我们使用 Web ui 上传相关配置即可调用 lighting 来导入数据

Lighting web 测试使用_第1张图片

其他测试信息

Schema

CREATE TABLE test.`orders_range` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `customer_surname` varchar(30) DEFAULT NULL,
  `store_id` int(11) DEFAULT NULL,
  `salesperson_id` int(11) DEFAULT NULL,
  `order_Date` date DEFAULT NULL,
  `note` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=30002
PARTITION BY RANGE (`id`)
(PARTITION `p0` VALUES LESS THAN (5),
 PARTITION `p1` VALUES LESS THAN (10),
 PARTITION `p3` VALUES LESS THAN (15))

CSV

cat test.orders_range.csv                                                                                            ✔  wangjun@vm172-16-201-210  16:37:07  
1,"aa",1,1,"2022-11-07 13:56:11.000","test"
2,"bb",2,2,"2022-11-07 13:56:12.000","test2"

Lighting web 加载的 toml 配置

[lightning]
# 日志
level = "info"
file = "tidb-lightning.log"

[tikv-importer]
# 选择使用的 local 后端
backend = "tidb"
# 设置排序的键值对的临时存放地址,目标路径需要是一个空目录
sorted-kv-dir = "/data/wangjun/tidb-tools/sorted-kv-dir"

[mydumper]
# 源数据目录。
data-source-dir = "/data/wangjun/tidb-tools/csv"

[mydumper.csv]
# 字段分隔符,支持一个或多个字符,默认值为 ','。如果数据中可能有逗号,建议源文件导出时分隔符使用非常见组合字符例如'|+|'。
separator = ','
# 引用定界符,设置为空表示字符串未加引号。
delimiter = '"'
# 行尾定界字符,支持一个或多个字符。设置为空(默认值)表示 "\n"(换行)和 "\r\n" (回车+换行),均表示行尾。
terminator = ""
# CSV 文件是否包含表头。
# 如果为 true,首行将会被跳过。
header = false
# CSV 是否包含 NULL。
# 如果为 true,CSV 文件的任何列都不能解析为 NULL。
not-null = false
# 如果 `not-null` 为 false(即 CSV 可以包含 NULL),
# 为以下值的字段将会被解析为 NULL。
null = '\N'
# 是否解析字段内的反斜线转义符。
backslash-escape = true
# 是否移除以分隔符结束的行。
trim-last-separator = false

# 配置通配符规则,默认规则会过滤 mysql、sys、INFORMATION_SCHEMA、PERFORMANCE_SCHEMA、METRICS_SCHEMA、INSPECTION_SCHEMA 系统数据库下的所有表
# 若不配置该项,导入系统表时会出现“找不到 schema”的异常
# filter = ['*.*', '!mysql.*', '!sys.*', '!INFORMATION_SCHEMA.*', '!PERFORMANCE_SCHEMA.*', '!METRICS_SCHEMA.*', '!INSPECTION_SCHEMA.*']

[tidb]
# 目标集群的信息
host = "127.0.0.1"
port = 4201
user = "root"
password = "tidb@123"
# 表架构信息在从 TiDB 的“状态端口”获取。
status-port = 10080
# 集群 pd 的地址
pd-addr = "127.0.0.1:2379"

API 方式调用

UI 方式成功后,按照 API 章节说明,我们尝试使用 Postman 调用来尝试使用。

使用方法如下图:

Lighting web 测试使用_第2张图片

点击 send ,可以看到返回任务 ID,从 Web ui 也可以看到调用成功:

Lighting web 测试使用_第3张图片

结论

如果在自家内网环境,不想登录服务器去启动 lighting,而是兼容到自家的调度平台,Lightning web 方式是一个很好的接入方式。

Lighting web 测试使用_第4张图片

你可能感兴趣的:(linux,运维,服务器)