全部产品

实施步骤

更新时间:2020-06-30 16:02:25

步骤一:创建MaxCompute Schema

  1. 登录DLA控制台

  2. 单击左侧导航栏的访问点管理,然后单击登录到DMS,在DMS中通过以下SQL创建Schema。

    1. CREATE SCHEMA maxcpmpute_test WITH DBPROPERTIES (
    2. catalog = 'odps',
    3. location = 'http://dt.<maxcompute-region>.maxcompute.aliyun.com',
    4. endpoint = 'http://service.<maxcompute-region>.maxcompute.aliyun.com/api',
    5. project = 'dla_project',
    6. user = '<access-key>',
    7. password = '<access-secret>'
    8. )
    参数 说明
    catalog Schema类型。
    location MaxCompute中对应Regoin的经典网络Tunnel Endpoint。

    各Region下的经典网络Tunnel Endpoint请参见MaxCompute Endpoint

    endpoint MaxCompute中对应Regoin的经典网络Endpoint。

    各Region下的经典网络Endpoint请参见MaxCompute Endpoint

    project MaxCompute项目名称。
    user 访问MaxCompute所使用云账号对应的AccessKey。
    password 上述AccessKey对应的Access Key Secret。

步骤二:同步MaxCompute表信息

注意:

  • MaxCompute中的外表无法同步到DLA中。

  • 如果MaxCompute中的表是分区表,则在DLA建表语句中,分区列会作为普通列进行定义,且分区列的定义排序在所有列之后。

方法一:通过MSCK REPAIR同步MaxCompute Project中的所有表

  1. msck repair database <schema_name>

执行上述命令将schema_name对应的MaxCompute Project中的所有表同步到DLA中。

方法二:同步单表信息(非分区表)

您可以通过CREATE TABLE同步指定表的信息,例如通过以下SQL同步bank_data表信息。

  1. CREATE external TABLE bank_data
  2. (
  3. age BIGINT COMMENT '年龄',
  4. job STRING COMMENT '工作类型',
  5. marital STRING COMMENT '婚否',
  6. education STRING COMMENT '教育程度',
  7. default STRING COMMENT '是否有信用卡',
  8. housing STRING COMMENT '房贷',
  9. loan STRING COMMENT '贷款',
  10. contact STRING COMMENT '联系途径',
  11. month STRING COMMENT '月份',
  12. day_of_week STRING COMMENT '星期几',
  13. duration STRING COMMENT '持续时间',
  14. campaign BIGINT COMMENT '本次活动联系的次数',
  15. pdays DOUBLE COMMENT '与上一次联系的时间间隔',
  16. previous DOUBLE COMMENT '之前与客户联系的次数',
  17. poutcome STRING COMMENT '之前市场活动的结果',
  18. emp_var_rate DOUBLE COMMENT '就业变化速率',
  19. cons_price_idx DOUBLE COMMENT '消费者物价指数',
  20. cons_conf_idx DOUBLE COMMENT '消费者信心指数',
  21. euribor3m DOUBLE COMMENT '欧元存款利率',
  22. nr_employed DOUBLE COMMENT '职工人数',
  23. y BIGINT COMMENT '是否有定期存款'
  24. );

方法二:同步单表信息(分区表)

例如MaxCompute中有以下分区表:

  1. CREATE TABLE IF NOT EXISTS part_datatype_test_complex (
  2. int_test int,
  3. bigint_test bigint,
  4. double_test double,
  5. string_test string,
  6. datetime_test datetime,
  7. boolean_test boolean,
  8. array_test array<INT>,
  9. map_test map<string, string>,
  10. struct_test_1 struct<x:INT, y:INT>,
  11. struct_test_2 struct<x:string, y:string>
  12. )
  13. partitioned by (pt bigint, region string);

DLA中对应的建表语句为:

  1. CREATE EXTERNAL TABLE IF NOT EXISTS part_datatype_test_complex (
  2. int_test int,
  3. bigint_test bigint,
  4. double_test double,
  5. string_test string,
  6. datetime_test datetime,
  7. boolean_test boolean,
  8. array_test string,
  9. map_test string,
  10. struct_test_1 string,
  11. struct_test_2 string
  12. )
  13. partitioned by (pt bigint, region string);

步骤三:读取MaxCompute表数据

表创建成功后,您可以通过MySQL客户端或者MySQL命令行工具连接DLA中的MaxCompute Schema,从而通过SELECT读取MaxCompute表数据。