全量导出至 S3

更新时间:
复制 MD 格式

本文介绍如何使用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数据源。

  • 在目标数据源中选择已配置的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/