从平凯云 Starter 或 Essential 导出数据
平凯数据库云服务支持你将数据从平凯云 Starter 或 Essential 实例导出到本地文件或外部存储服务。你可以将导出的数据用于备份、迁移、数据分析或其他用途。
虽然你也可以使用 mysqldump 和 TiDB Dumpling 等工具进行数据导出,但平凯数据库云服务提供的导出功能为你从平凯云 Starter 或 Essential 实例导出数据带来了更便捷高效的方式。其优势包括:
- 便捷性:导出服务提供了简单易用的方式从平凯云 Starter 或 Essential 实例导出数据,无需额外工具或资源。
- 隔离性:导出服务使用独立的计算资源,确保与在线服务资源隔离。
- 一致性:导出服务保证导出数据的一致性且不会产生锁,不影响你的在线服务。
注意
当前最大导出数据量为 1 TiB。如需导出更多数据或申请更高的导出速度,请联系 平凯数据库云服务 Support。
导出位置
你可以将数据导出到以下位置:
-
对于 平凯云 Starter :
- 阿里云对象存储 OSS
- 腾讯云对象存储 COS(支持情况以平凯数据库云服务控制台为准)
注意
如果导出数据量较大(超过 100 GiB),建议导出到外部存储。
本地文件
要将平凯云 Starter 或 Essential 实例中的数据导出到本地文件,你需要 通过平凯数据库云服务控制台导出数据 或 使用平凯数据库云服务 CLI 导出数据,然后通过平凯数据库云服务 CLI 下载导出数据。
导出到本地文件有以下限制:
- 不支持通过平凯数据库云服务控制台下载导出数据。
- 导出数据会保存在平凯数据库云服务的暂存区,且会在两天后过期。你需要及时下载导出数据。
- 如果暂存区存储空间已满,将无法导出数据到本地文件。
阿里云 OSS
导出数据到阿里云 OSS 时,你需要提供以下信息:
- URI:
oss://<bucket-name>/<folder-path>/ - 访问凭证:你的阿里云账户的 AccessKey 对。确保该 AccessKey 对拥有
oss:PutObject和oss:GetBucketInfo权限。
更多信息,参见 配置阿里云对象存储 OSS 访问。
导出选项
数据过滤
- 平凯数据库云服务控制台支持按所选数据库和表导出数据。
- 平凯数据库云服务 CLI 支持通过 SQL 语句和 表过滤器 导出数据。
数据格式
你可以将数据导出为以下格式:
SQL:以 SQL 格式导出数据。CSV:以 CSV 格式导出数据。你可以指定以下选项:delimiter:指定导出数据中使用的定界符。默认定界符为 `"。separator:指定导出数据中分隔字段的字符。默认分隔符为,。header:指定是否在导出数据中包含表头行。默认值为true。null-value:指定导出数据中表示空值的字符串。默认值为\N。
Parquet:以 Parquet 格式导出数据。仅适用于 平凯云 Starter 数据导出。
schema 和数据的导出文件命名规则如下:
| 项目 | 未压缩文件 | 压缩文件 |
|---|---|---|
| 数据库 schema | {database}-schema-create.sql | {database}-schema-create.sql.{compression-type} |
| 表 schema | {database}.{table}-schema.sql | {database}.{table}-schema.sql.{compression-type} |
| 数据 | {database}.{table}.{0001}.{csv|parquet|sql} | {database}.{table}.{0001}.{csv|sql}.{compression-type} {database}.{table}.{0001}.{compression-type}.parquet |
数据压缩
你可以使用以下算法对导出的 CSV 和 SQL 数据进行压缩:
gzip(默认):使用gzip压缩导出数据。snappy:使用snappy压缩导出数据。zstd:使用zstd压缩导出数据。none:不对导出数据进行压缩。
你可以使用以下算法对导出的 Parquet 数据进行压缩:
zstd(默认):使用zstd压缩 Parquet 文件。gzip:使用gzip压缩 Parquet 文件。snappy:使用snappy压缩 Parquet 文件。none:不对 Parquet 文件进行压缩。
数据转换
当导出数据为 Parquet 格式时,TiDB 与 Parquet 之间的数据类型转换如下:
| TiDB 数据类型 | Parquet 原语类型 | Parquet 逻辑类型 |
|---|---|---|
| VARCHAR | BYTE_ARRAY | String(UTF8) |
| TIME | BYTE_ARRAY | String(UTF8) |
| TINYTEXT | BYTE_ARRAY | String(UTF8) |
| MEDIUMTEXT | BYTE_ARRAY | String(UTF8) |
| TEXT | BYTE_ARRAY | String(UTF8) |
| LONGTEXT | BYTE_ARRAY | String(UTF8) |
| SET | BYTE_ARRAY | String(UTF8) |
| JSON | BYTE_ARRAY | String(UTF8) |
| DATE | BYTE_ARRAY | String(UTF8) |
| CHAR | BYTE_ARRAY | String(UTF8) |
| VECTOR | BYTE_ARRAY | String(UTF8) |
| DECIMAL(1<=p<=9) | INT32 | DECIMAL(p,s) |
| DECIMAL(10<=p<=18) | INT64 | DECIMAL(p,s) |
| DECIMAL(p>=19) | BYTE_ARRAY | String(UTF8) |
| ENUM | BYTE_ARRAY | String(UTF8) |
| TIMESTAMP | INT64 | TIMESTAMP(unit=MICROS,isAdjustedToUTC=false) |
| DATETIME | INT64 | TIMESTAMP(unit=MICROS,isAdjustedToUTC=false) |
| YEAR | INT32 | / |
| TINYINT | INT32 | / |
| UNSIGNED TINYINT | INT32 | / |
| SMALLINT | INT32 | / |
| UNSIGNED SMALLINT | INT32 | / |
| MEDIUMINT | INT32 | / |
| UNSIGNED MEDIUMINT | INT32 | / |
| INT | INT32 | / |
| UNSIGNED INT | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) |
| BIGINT | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) |
| UNSIGNED BIGINT | BYTE_ARRAY | String(UTF8) |
| FLOAT | FLOAT | / |
| DOUBLE | DOUBLE | / |
| BLOB | BYTE_ARRAY | / |
| TINYBLOB | BYTE_ARRAY | / |
| MEDIUMBLOB | BYTE_ARRAY | / |
| LONGBLOB | BYTE_ARRAY | / |
| BINARY | BYTE_ARRAY | / |
| VARBINARY | BYTE_ARRAY | / |
| BIT | BYTE_ARRAY | / |
示例
导出数据到本地文件
-
登录 平凯数据库云服务控制台,进入集群列表页面。
提示:
如果你属于多个组织,请先使用左上角的下拉框切换到目标组织。
-
点击目标平凯云 Starter 或 Essential 实例名称进入概览页,然后在左侧导航栏点击 Data > Import。
-
在 Import 页面,点击右上角的 Export Data to,在下拉列表中选择 Local File,并填写以下参数:
- Task Name:输入导出任务名称。默认值为
SNAPSHOT_{snapshot_time}。 - Exported Data:选择你要导出的数据库和表。
- Data Format:选择 SQL、CSV 或 Parquet。
- Compression:选择 Gzip、Snappy、Zstd 或 None。
提示:
如果你的平凯云 Starter 或 Essential 实例之前未导入或导出过数据,需要在页面底部点击 Click here to export data to... 进行数据导出。
- Task Name:输入导出任务名称。默认值为
-
点击 Export。
-
导出任务成功后,你可以复制导出任务详情中显示的下载命令,并在 平凯数据库云服务 CLI 中运行该命令下载导出数据。
-
创建导出任务:
ticloud serverless export create -c <cluster-id>你将在输出中获得一个导出 ID。
-
导出任务成功后,将导出数据下载到本地文件:
ticloud serverless export download -c <cluster-id> -e <export-id>有关下载命令的更多信息,参见 ticloud serverless export download。
导出数据到阿里云 OSS
-
登录 平凯数据库云服务控制台,进入集群列表页面。
提示:
如果你属于多个组织,请先使用左上角的下拉框切换到目标组织。
-
点击目标平凯云 Starter 或 Essential 实例名称进入概览页,然后在左侧导航栏点击 Data > Import。
-
在 Import 页面,点击右上角的 Export Data to,在下拉列表中选择 阿里云 OSS。
-
填写以下参数:
- Task Name:输入导出任务名称。默认值为
SNAPSHOT_{snapshot_time}。 - Exported Data:选择你要导出的数据库和表。
- Data Format:选择 SQL、CSV 或 Parquet。
- Compression:选择 Gzip、Snappy、Zstd 或 None。
- Folder URI:输入你希望导出数据的阿里云 OSS URI,格式为
oss://<bucket-name>/<folder-path>/。 - AccessKey ID 和 AccessKey Secret:输入有权限访问 bucket 的 AccessKey ID 和 AccessKey Secret。
- Task Name:输入导出任务名称。默认值为
-
点击 Export。
ticloud serverless export create -c <cluster-id> --target-type OSS --oss.uri <uri> --oss.access-key-id <access-key-id> --oss.access-key-secret <access-key-secret> --filter "database.table"oss.uri:你希望导出数据的阿里云 OSS URI,格式为oss://<bucket-name>/<folder-path>/。oss.access-key-id:有权限访问 bucket 的用户的 AccessKey ID。oss.access-key-secret:有权限访问 bucket 的用户的 AccessKey Secret。
取消导出任务
要取消正在进行的导出任务,请按以下步骤操作:
-
登录 平凯数据库云服务控制台,进入集群列表页面。
提示:
如果你属于多个组织,请先使用左上角的下拉框切换到目标组织。
-
点击目标平凯云 Starter 或 Essential 实例名称进入概览页,然后在左侧导航栏点击 Data > Import。
-
在 Import 页面,点击 Export 查看导出任务列表。
-
选择你要取消的导出任务,然后点击 Action。
-
在下拉列表中选择 Cancel。注意,你只能取消状态为 Running 的导出任务。
ticloud serverless export cancel -c <cluster-id> -e <export-id>导出速度
导出速度因 平凯云 Starter 和 平凯云 Essential 而异:
-
平凯云 Starter:
- 如果消费上限设置为 0,导出速度最高为 25 MiB/s。
- 如果消费上限大于 0,导出速度最高为 100 MiB/s。
-
平凯云 Essential:最高 100 MiB/s。
计费
导出服务在公测期间免费。你只需为成功或已取消任务导出过程中产生的 Request Units (RUs) 支付费用。对于失败的导出任务,不会收取费用。