本文介绍如何使用LTS平台的Web界面创建和管理Lindorm到AWS S3的全量数据导出任务。通过该功能,您可以将Lindorm数据库中的数据导出到AWS S3存储,支持多种文件格式和灵活的导出配置。
前提条件
系统要求
已开通LTS引擎和计算引擎。
已开通宽表snapshot配置。如需开通,请联系LTS值班同学开启。
LTS引擎版本需升级到3.9.4及以上,并且需要LTS同学后台热升级该功能。升级过程中不会对其他引擎服务产生影响。
确保源端Lindorm和目标S3 Bucket的网络连通性正常。
权限准备
Lindorm数据源权限:在作业中配置的账号能够访问需要导出的表。
S3权限:提供的AWS账号或IAM用户确保拥有目标Bucket的读写权限。
操作步骤
步骤一:数据源配置
通过Lindorm控制台访问LTS管理控制台。
创建数据源
分别创建Lindorm、Spark和S3数据源(三个均需创建):
创建Lindorm宽表数据源:请参见添加Lindorm宽表数据源。
创建Spark数据源:请参见添加Spark数据源。
创建S3数据源:请参见添加S3数据源。
新建导出任务
在源数据源中选择需要导出数据的Lindorm实例,从下拉列表中选择已配置的Lindorm数据源。
在目标数据源中选择已配置的S3数据源。
设置文件类型
可选的文件类型:
CSV:适合文本数据和通用场景。
Parquet:适合大数据分析场景,列式存储。
ORC:适合高性能查询场景。
配置Bucket路径
指定导出文件存储的目标Bucket路径。当目标数据源为S3时,Bucket路径格式为s3a://your-s3-bucket/export-data。
为确保数据能顺利导出,请确认满足以下条件:
该 Bucket 已经创建好。
当前账号拥有对该 Bucket 的写入权限。
您当前的网络环境能够正常访问该 Bucket 所在的区域。
步骤二:导出配置
导出配置提供两种方式,二选一:
如果导出整表、整集群、整库,则不需要填写导出配置中的SQL语句。此种方式不支持计算,只支持全表字段1:1导出(目前只支持非动态列的SQL表)。
如果需要使用SQL过滤语句,则不需要选择表,语句中需要使用
select xx from 数据库.表名 where xx的方式。此种方式可以自定义SQL进行数据过滤及ETL计算后导出。
选项A:表指定
使用示例:
*:导出整个Lindorm实例的所有表。test_ns:*:导出test_ns命名空间下的所有表。test_ns:user_info:仅导出user_info表。
选项B:SQL语句
禁止使用DROP、DELETE、TRUNCATE等危险语句,在SQL窗口中会做校验,此类危险语句将无法执行。
语法要求:Spark SQL。使用示例:
INSERT OVERWRITE DIRECTORY 's3a://your-bucket/lindorm2s3/{namespace}/{tablename}/{ts}' USING CSV SELECT * FROM {namespace}.`{tablename}`步骤三:Spark运行参数配置
执行器实例数
字段名称:Executor数量
说明:指定Spark作业的执行器实例数量,默认1个Executor(4个并发同时读上游宽表)。
影响:实例数越多,并行度越高,导出速度越快,但会对源端实例有影响,建议采用默认值(1 Executor),观察源端监控调整。
Spark附加参数(可选)
用于优化Spark作业性能。默认无需填写。
步骤四:提交任务
提交前系统会自动验证以下内容:
必填字段是否完整。
数据源连接是否正常。
S3 Bucket权限是否足够。
表规范或SQL语法是否正确。
单击页面底部的创建按钮提交任务。
成功:自动跳转到任务列表页面。
失败:显示具体错误信息,需要根据提示修正配置。
任务监控与管理
RUNNING:正在执行。
SUCCESS:执行成功。
FAILED:执行失败。
KILLED:被终止。
单击具体任务可以查看任务执行进度、处理的数据量、执行日志和错误信息(如有)。查看后需要数据库连接的帐户名密码(可在控制台查看)。
导出文件结构
默认存储路径格式:
s3a://{bucket}/lindorm2s3/{namespace}/{table}/{timestamp}/如需自定义路径,请使用SQL方式。
文件组织结构示例:
lindorm2s3/
├── namespace1/
│ ├── table1/
│ │ └── 20240101_120000/
│ │ ├── part-00000.csv
│ │ ├── part-00001.csv
│ │ └── _SUCCESS
│ └── table2/
│ └── 20240101_120000/
└── namespace2/
└── table1/
└── 20240101_120000/