导入Bigtable数据

更新时间: 2025-06-20 15:04:44

本文为您介绍如何将Bigtable数据迁移到Lindorm。 

前提条件

注意事项

  • Bigtable仅支持通过专有网络迁移数据。为确保网络连通性及低延迟,建议将Bigtable实例与Lindorm实例部署在同一VPC内。

  • 您可以通过以下两种方式提升任务运行效率:

    • 调整Executor数量:增加Executor可提升并发处理能力,但也会增加资源开销,建议结合业务负载特征和集群资源配置动态调优。

    • 优化batchSize参数:适当增大batchSize可提高单次数据处理吞吐量,但需结合数据特征调优,避免内存溢出或GC频繁引发性能抖动。

步骤一:启用Bigtable API

读取Bigtable数据需要开启API服务,开启方式请参见使用 IAM 进行 Bigtable 访问权限控制

步骤二:创建服务账号密钥

创建服务账号密钥并下载到本地,并将文件重命名为GOOGLE_APPLICATION_CREDENTIALS.json

步骤三:上传密钥

  1. 登录Lindorm管理控制台

  2. 在页面左上角,选择实例所属的地域。

  3. 实例列表页,单击目标实例ID或者目标实例所在行操作列的管理

  4. 在左侧导航栏,单击计算引擎

  5. 单击作业管理页签。

  6. 单击上传资源

  7. 上传资源对话框,上传服务账号密钥文件GOOGLE_APPLICATION_CREDENTIALS.json

  8. 单击对话框左上角的上传

步骤四:配置迁移任务

配置主程序启动参数

任务启动参数以JSON格式配置:

{
"bigtable.projectId":"myproject",
"bigtable.instanceId":"myInstanceId",
"bigtable.tableName":"bigtable_name",

"lindorm.seedServer":"ld-bp1hn6yq0yb34****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020",
"lindorm.namespace":"default",
"lindorm.tableName":"lindorm_table_name",
"lindorm.userName":"root",
"lindorm.password":"test****",
"lindorm.batchSize":16
}

参数说明

参数

说明

bigtable.projectId

Bigtable项目ID。

bigtable.instanceId

Bigtable实例ID。

bigtable.tableName

Bigtable源表名称。

lindorm.seedServer

Lindorm宽表引擎HBase Java API访问连接地址

lindorm.namespace

Lindorm目标命名空间。

lindorm.tableName

Lindorm目标表名称。

lindorm.userName

Lindorm宽表引擎用户名

lindorm.password

Lindorm宽表引擎的密码

lindorm.batchSize

批量写入大小。

转换Base64编码

将上述主程序启动参数转换为Base64编码,示例如下:

ewoiYmlndGFibGUucHJvamVjdElkIjoibXlwcm9qZWN0IiwKImJpZ3RhYmxlLmluc3RhbmNlSWQiOiJteUluc3RhbmNlSWQiLAoiYmlndGFibGUudGFibGVOYW1lIjoiYmlndGFibGVfbmFtZSIsCgoibGluZG9ybS5zZWVkU2VydmVyIjoibGQtKioqKioqKioqKi1wcm94eS1saW5kb3JtLmxpbmRvcm0ucmRzLmFsaXl1bmNzLmNvbTozMDAyMCIsCiJsaW5kb3JtLm5hbWVzcGFjZSI6ImRlZmF1bHQiLAoibGluZG9ybS50YWJsZU5hbWUiOiJsaW5kb3JtX3RhYmxlX25hbWUiLAoibGluZG9ybS51c2VyTmFtZSI6IioqKioqKioqKiIsCiJsaW5kb3JtLnBhc3N3b3JkIjoiKioqKioqKioqIiwKImxpbmRvcm0uYmF0Y2hTaXplIjoxNgp9

配置数据迁移任务

  1. 登录Lindorm管理控制台

  2. 在页面左上角,选择实例所属的地域。

  3. 实例列表页,单击目标实例ID或者目标实例所在行操作列的管理

  4. 在左侧导航栏,单击计算引擎

  5. 单击作业管理页签。

  6. 单击创建作业

  7. 创建作业对话框,自定义作业名称并选择作业类型。

  8. 根据作业内容模板,配置以下作业参数,其他参数默认配置。

    {
      "token": "bf198279-5d1f-4aca-97f7-d16eda2f****",
      "appName": "bigtable-to-lindorm",
      "mainResource": "hdfs:///ldps-user-resource/ldps-bigtable-to-lindorm-1.0-SNAPSHOT.jar",
      "mainClass": "com.alibaba.bds.Main",
      "configs": {
        "spark.dynamicAllocation.maxExecutors": "50",
        "spark.executor.cores":4,
        "spark.executor.memory":"11264m",
        "spark.executor.memoryOverhead":"5120m",
        "spark.kubernetes.executor.disk.size":500
      },
      "args": ["ewoiYmlndGFibGUucHJvamVjdElkIjoibXlwcm9qZWN0IiwKImJpZ3RhYmxlLmluc3RhbmNlSWQiOiJteUluc3RhbmNlSWQiLAoiYmlndGFibGUudGFibGVOYW1lIjoiYmlndGFibGVfbmFtZSIsCgoibGluZG9ybS5zZWVkU2VydmVyIjoibGQtKioqKioqKioqKi1wcm94eS1saW5kb3JtLmxpbmRvcm0ucmRzLmFsaXl1bmNzLmNvbTozMDAyMCIsCiJsaW5kb3JtLm5hbWVzcGFjZSI6ImRlZmF1bHQiLAoibGluZG9ybS50YWJsZU5hbWUiOiJsaW5kb3JtX3RhYmxlX25hbWUiLAoibGluZG9ybS51c2VyTmFtZSI6IioqKioqKioqKiIsCiJsaW5kb3JtLnBhc3N3b3JkIjoiKioqKioqKioqIiwKImxpbmRvcm0uYmF0Y2hTaXplIjoxNgp9"]
    }

    参数说明

    参数

    说明

    token

    提交Spark作业时用于进行计算资源鉴权的token。您可以通过云原生多模数据库 Lindorm控制台获取,单击目标实例ID,在左侧导航栏选择数据库连接,切换至计算引擎页面并查看token值。

    appName

    作业名称,用于标识任务。

    mainResource

    JAR包或者Python文件在HDFS或OSS的存储路径。

    mainClass

    JAR作业的程序入口类。

    configs

    Spark系统参数配置。此外,如果您已将作业上传至OSS,则需要在此增加以下配置:

    • spark.dynamicAllocation.maxExecutors:程序最大Executor数量。

    • spark.executor.cores:单Executor提供的计算槽位数量。

    • spark.executor.memory:单Executor堆内内存大小,单位为MB。

    • spark.executor.memoryOverhead:单Executor堆外内存大小,单位为MB。

    • spark.kubernetes.executor.disk.size:单Executor本地磁盘大小,单位为GB。

    args

    主程序启动参数的Base64编码。

  9. 配置完成后,单击页面右上角的保存运行

查看任务运行情况

单击作业列表,查看任务运行详情。

上一篇: 导入MongoDB数据 下一篇: 导出CSV至本地
阿里云首页 云原生多模数据库 Lindorm 相关技术圈