语法结构

CREATE SCHEMA [IF NOT EXISTS] db_name 
with dbproperties (
  CATALOG = <catalog>,
  LOCATION = <endpoint>
)
参数名称 参数说明
CATALOG DATABASE的类型,目前支持如下类型:
  • hive
  • mysql
  • sqlserver
  • postgresql
  • oracle
  • ots
  • ads (ADB2.0)
  • adb3 (ADB3.0)
  • adbpg
  • mongodb
  • redis
  • elasticsearch
  • druid
  • kudu
  • odps
LOCATION 连接信息。LOCATION格式会根据Schema的类型发生变化。

不同数据源的语法示例

创建hive数据库

CREATE DATABASE oss_log_schema with DBPROPERTIES(
  catalog='hive',
  location = 'oss://analyticdb-bucket/log/'
);

创建MySQL数据库

CREATE SCHEMA mysql_db WITH DBPROPERTIES (
  CATALOG = 'mysql', 
  LOCATION = 'jdbc:mysql://rm-2zer0vg58mfofake.mysql.rds.aliyuncs.com:3306/dla_test',
  USER = 'dla_test',
  PASSWORD = 'the-fake-password',
  VPC_ID = 'vpc-2zeij924vxd303kwifake',
  INSTANCE_ID = 'rm-2zer0vg58mfo5fake'
);
参数名称 参数说明
VPC_ID RDS所在的VPC的ID。
INSTANCE_ID RDS的实例ID。

创建SQL Server数据库

CREATE SCHEMA `sqlserver_db` WITH DBPROPERTIES 
( 
  CATALOG = 'sqlserver', 
  LOCATION = 'jdbc:sqlserver://rm-bp15g1r5jf90hfake.sqlserver.rds.aliyuncs.com:3433;DatabaseName=dla_test',
  USER='dla_test1',
  PASSWORD='this-is-not-a-real-password',
  INSTANCE_ID = 'rm-bp15g1r5jf90fake',
  VPC_ID = 'vpc-bp1adypqlcn535yrdfake'
);
说明 LOCATION要指定数据库的名字,您可以通过 DatabaseName=dla_test的方式来指定。这是由SQL Server JDBC URL定义的,不是由DLA定义的。

创建PostgreSQL数据库

CREATE SCHEMA `postgresql_db` WITH DBPROPERTIES 
( 
  CATALOG = 'postgresql', 
  LOCATION = 'jdbc:postgresql://rm-bp1oo49r6j3hvfake.pg.rds.aliyuncs.com:3433/dla_test',
  USER='dla_test',
  PASSWORD='this-is-not-a-real-password',
  INSTANCE_ID = 'rm-bp1oo49r6j3hfake',
  VPC_ID = 'vpc-bp1adypqlcn535yrfake'
);

创建Oracle数据库

CREATE DATABASE `oracle_db`
WITH DBPROPERTIES (
    catalog = 'oracle',
    location = 'jdbc:oracle:thin:@//127.0.0.01:1521/XE',
    instance = 'HR',
    user = 'hello',
    password = 'world'
)

创建OTS数据库

create database ots_db with dbproperties (
  catalog = 'ots',
  location = 'https://hz-tpch-1x-vol.cn-hangzhou.vpc.tablestore.aliyuncs.com',
  instance = 'hz-tpch-1x-vol'
);
参数名称 参数说明
location ots的endpoint。
instance 指定instance名。由于endpoint可以不带实例名,最终映射到DLA的schema。

创建ADB2.0数据库

CREATE DATABASE `ads2_db`
WITH DBPROPERTIES (
    catalog = 'ads',
    location = 'jdbc:mysql://adb-xxx-vpc.cn-beijing-f.ads.aliyuncs.com:10001/xxx',
    instance = 'adb_tongguan_test_52265',
    user = 'user001',
    password = 'pass001'
)
参数名称 参数说明
location ADB2.0服务器的域名和端口。
instance ADB2.0的实例。
user ADB2.0的用户名。
password ADB2.0的密码。

创建ADB3.0数据库

CREATE DATABASE `adb3_db`
WITH DBPROPERTIES (
    catalog = 'adb3',
    location = 'jdbc:mysql://am-bp15huqy8t1118x4590650.ads.aliyuncs.com/adb3_it_db',
    user = 'dla_test',
    password = 'openanalytics@2018',
    vpc_id = 'vpc-bp1ll9szezdnbrob9auhs',
    instance_id = 'am-bp15huqy8t1118x45'
);
参数名称 参数说明
location ADB3.0服务器的域名和端口。
user ADB3.0的用户名。
password ADB3.0的密码。
vpc_id ADB3.0所在的VPC的ID。
instance_id ADB3.0的实例ID。

创建ADBPG数据库

 CREATE SCHEMA  dla_adbpg_test_db 
 WITH DBPROPERTIES (
     CATALOG = 'adbpg',
     LOCATION = 'jdbc:postgresql://gp-bp13******.gpdb.rds.aliyuncs.com:3432/db-name',
     USER = 'user-name',
     PASSWORD = 'password',
     INSTANCE_ID = 'gp-bp*******',
     VPC_ID = 'vpc-bp********'
 );
参数名称 参数说明
location adbpg服务器的域名和端口。
user adbpg的用户名。
password adbpg的密码。
instance_id adbpg的实例ID。
vpc_id adbpg所在的VPC的ID。

创建MongoDB数据库

CREATE DATABASE `mongo_test`
WITH DBPROPERTIES (
    catalog = 'mongodb',
    location = 'mongodb://<your-user-name>:<your-password>@dds-bp1694axxxxxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1694ayyyyyyyy.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=zzzzz',
    database = 'mongo_test',
    vpc_id = 'vpc-aaaaaaa',
    instance_id = 'dds-bbbbbbb'
);
参数名称 参数说明
location MongoDB的ConnectionString,里面包含了你的用户名、密码、要连接的MongoDB的地址、使用的认证数据库等等。
database MongoDB的底层库。
vpc_id MongoDB所在的VPC的ID。
instance_id MongoDB的实例ID。

创建Redis数据库

CREATE DATABASE `redis_db`
WITH DBPROPERTIES (
    catalog = 'redis',
    location = 'r-xxxxx.redis.rds.aliyuncs.com:6379/hello_',
    password = 'xxxxx',
    vpc_id = 'vpc-xxxxx',
    instance_id = 'r-xxxxxx'
)
参数名称 参数说明
location redis服务器的域名和端口。
password redis的密码。
vpc_id redis所在的VPC的ID。
instance_id redis的实例ID。