日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數據復制

本文介紹如何在開源大數據平臺 EMR(E-MapReduce)集群上,使用Spark3將表格存儲中一張表的數據復制到另一張表中,全程使用SQL語句實現表的創建以及數據的復制操作。

前提條件

  • 已創建EMR集群。具體操作,請參見創建EMR集群

    重要
    • 創建集群時,請確保打開Master節點組的掛載公網開關,將集群掛載到公網,用于遠程登錄。

    • 不開啟"掛載公網",創建后只能通過內網訪問。創建后如果您需要公網訪問,請前往ECS掛載EIP

  • 已創建表格存儲數據表,且目標表的主鍵列應和需要復制的源表主鍵列保持一致(包括主鍵順序和名稱)。具體操作,請參見通過控制臺創建數據表通過SDK創建數據表

  • 已創建RAM用戶,并授予RAM用戶管理表格存儲服務的權限(AliyunOTSFullAccess)。具體操作,請參見配置RAM用戶權限

    重要

    由于配置時需要填寫訪問密鑰AccessKey(AK)信息來執行授權,為避免阿里云賬號泄露AccessKey帶來的安全風險,建議您通過RAM用戶來完成授權和AccessKey的創建。

  • 已獲取AccessKey(包括AccessKey ID和AccessKey Secret),用于進行簽名認證。具體操作,請參見獲取AccessKey

步驟一:啟動Spark SQL CLI

  1. 遠程登錄EMR集群的Master節點。具體操作,請參見遠程登錄Master節點

  2. 執行如下命令啟動Spark SQL CLI,用于Spark表創建和后續的SQL操作。

    spark-sql --jars /opt/apps/SPARK-EXTENSION/spark-extension-current/spark3-emrsdk/*,/opt/apps/HADOOP-COMMON/hadoop-common-current/share/hadoop/common/lib/commons-net-3.6.jar
    image.png

步驟二:創建Spark表

以兩張表格存儲數據表source_pet和target_pet為例,表結構如下,其中name為主鍵。

name

owner

species

sex

birth

death

  1. 創建source_pet外表。

    CREATE TABLE source_pet
    USING tablestore
    OPTIONS(endpoint = "https://xxx.cn-hangzhou.vpc.tablestore.aliyuncs.com",
            access.key.id = "xxx",
            access.key.secret = "xxx",
            table.name = "source_pet",
            instance.name = "test_instance",
            catalog = '{"columns":{"name":{"col":"name","type":"string"},"owner":{"col":"owner","type":"string"},"species":{"col":"species","type":"string"},"sex":{"col":"sex","type":"string"},"birth":{"col":"birth","type":"string"},"death":{"col":"death","type":"string"}}}'
    );

    具體參數說明請參見下表。

    參數

    說明

    endpoint

    表格存儲實例訪問地址,建議使用VPC地址。使用VPC時,請確保EMR集群和表格存儲實例之間的網絡可連通。更多信息,請參見服務地址

    說明

    如果要實現跨賬號、跨地域數據復制,請通過云企業網連通VPC進行操作。關于使用云企業網的具體操作,請參見云企業網快速入門

    access.key.id

    阿里云賬號或者RAM用戶的AccessKey ID和AccessKey Secret。獲取方式請參見創建AccessKey

    access.key.secret

    instance.name

    表格存儲實例名稱。

    table.name

    表格存儲的數據表名稱。

    catalog

    表格存儲數據表的Schema定義。

  2. 創建target_pet外表。

    CREATE TABLE target_pet
    USING tablestore
    OPTIONS(endpoint = "https://xxx.cn-hangzhou.vpc.tablestore.aliyuncs.com",
            access.key.id = "xxx",
            access.key.secret = "xxx",
            table.name = "target_pet",
            instance.name = "test_instance",
            catalog = '{"columns":{"name":{"col":"name","type":"string"},"owner":{"col":"owner","type":"string"},"species":{"col":"species","type":"string"},"sex":{"col":"sex","type":"string"},"birth":{"col":"birth","type":"string"},"death":{"col":"death","type":"string"}}}'
    );

    創建target_pet外表與創建source_pet外表的參數設置中只有table.name字段有差別,其他參數設置均相同。

    說明

    如果要實現跨賬號、跨地域數據復制,請通過云企業網連通VPC進行操作。關于使用云企業網的具體操作,請參見云企業網快速入門

步驟三:復制數據

將source_pet表中數據復制到target_pet表中。

INSERT INTO target_pet SELECT * FROM source_pet;