全部产品

创建AnalyticDB for MySQL Schema和表

更新时间:2020-03-31 15:40:16

您需要先在DLA中创建AnalyticDB for MySQL Schema和对应的外表,然后才能通过INSERT INTO SELECT将OSS中的数据写入AnalyticDB for MySQL。

创建Schema

  1. 登录DLA控制台

  2. 单击左侧导航栏的访问点管理,然后,登录DMS,在DLA中创建AnalyticDB for MySQL Schema。

    1. CREATE SCHEMA ads_database_schema WITH DBPROPERTIES
    2. (
    3. CATALOG = 'adb3',
    4. LOCATION = 'jdbc:mysql://am-bp1m76i0ivxpc60v313****.ads.aliyuncs.com:3306/adb_demo',
    5. VPC_ID='your-adb-vpc_id',
    6. INSTANCE_ID='your-adb-instance_id',
    7. USER='account1',
    8. PASSWORD='Account1'
    9. );
    参数 说明
    CATALOG = 'adb3' 指定创建的是AnalyticDB for MySQL 3.0 Schema。
    LOCATION AnalyticDB for MySQL的连接信息。
    VPC_ID AnalyticDB for MySQL的VPC ID。
    INSTANCE_ID AnalyticDB for MySQL的集群ID。
    USER AnalyticDB for MySQL中的数据库账号。
    PASSWORD USER对应的密码。

创建表

在DLA中创建AnalyticDB for MySQL,分为两种情况:

  • 表名、字段名或者字段类型与AnalyticDB for MySQL中的表信息不一致。

  • 表名、字段名或者字段类型与AnalyticDB for MySQL的表信息完全一致。

表名和字段信息一致(建议一致)

以下示例在DLA中创建shipping表。

  1. CREATE EXTERNAL TABLE shipping (
  2. id bigint NOT NULL COMMENT '',
  3. origin_state varchar NOT NULL COMMENT '',
  4. origin_zip varchar NOT NULL COMMENT '',
  5. destination_state varchar NOT NULL COMMENT '',
  6. destination_zip varchar NOT NULL COMMENT '',
  7. package_weight int NOT NULL COMMENT '',
  8. PRIMARY KEY (id)
  9. )

表名或字段信息不一致

以下示例在DLA中创建与order_table对应的表order_table1。其中,order_table1中部分字段名与order_table不同,order1_id的数据类型与order_id不同。

  1. CREATE EXTERNAL TABLE order_table1 (
  2. customer1_id bigint NOT NULL COMMENT '',
  3. order1_id bigint NOT NULL COMMENT '',
  4. order1_time date NOT NULL COMMENT '',
  5. order1_amount double NOT NULL COMMENT '',
  6. order1_type varchar NOT NULL COMMENT '',
  7. address1 varchar NOT NULL COMMENT '',
  8. city1 varchar NOT NULL COMMENT '',
  9. order1_season bigint COMMENT '',
  10. PRIMARY KEY (customer1_id)
  11. )
  12. tblproperties (
  13. table_mapping = 'adb_demo.order_table',
  14. column_mapping = 'customer1_id,customer_id; order1_id,order_id; order1_time:order_time,
  15. order1_amount:order_amount, order1_type:order_type, address1:address,
  16. city1:city,order1_season:order_season'
  17. );
参数说明
tblpropertiesDLA中的表与源表的映射关系。
table_mapping表名映射。
column_mapping字段(列)映射。