开通服务后,可通过控制台、MySQL Client 以及 JDBC 这三种方式接入 DLA 服务并进行 SQL 查询。

Tablestore 和 DLA 元信息映射逻辑

  • 库和表等概念映射
    Tablestore DLA
    实例(instance) schema 或 database
    表(table) table
    主键列(pk) column,isPrimaryKey=true,isNullable=false
    非主键列(column) column,isPrimaryKey=false,isNullable=<用户的DDL定义>
  • 字段的映射关系
    Tablestore DLA
    INTEGER(8bytes) bigint(8bytes)
    STRING varchar
    BINARY varbinary(目前主键中不支持)
    DOUBLE double
    BOOLEAN byte

控制台访问 DLA

控制台访问 DLA 步骤如下:

  1. 使用邮件中随附的该地域的用户名和密码登录数据库。
  2. 为 Tablestore 中的实例表格数据建立映射。

假设您在上海地域已创建一个名为 sh_tpch 的实例,该实例包含表格 test001,表格内包含 2 行测试数据。该实例建立映射的步骤如下:

  1. 将 Tablestore 的实例映射成 DLA 的一个 DataBase 实例。建立 DLA 的 Database 映射前,首先需要在 Tablestore 中创建实例,如创建一个名为 sh-tpch 的实例,对应的 endpoint 为 sh-tpch.cn-shanghai.ots.aliyuncs.com。

    完成测试实例创建后,执行下列语句建立 Database 映射:

    CREATE SCHEMA sh_tpch001 with DBPROPERTIES(LOCATION ='https://sh-tpch.cn-shanghai.ots.aliyuncs.com', catalog='ots', instance ='sh-tpch');                   
    说明 使用 MySQL Client 时,可以使用 create database 或 create schema 语句创建 database 映射。但是控制台目前只支持 create schema 语句创建 database 映射。


  2. 在 tp_tpch001 的 Database 下建立表格的映射。在建立 DLA 的表格映射前,首先需要在 Tablestore 中创建数据表。

    数据表创建完成后,执行下列语句建立表格映射:

    CREATE EXTERNAL TABLE test001 (pk0 int NOT NULL , primary key(pk0));                
    说明 建立 DLA 映射表时,指定的 Primary Key 必须与 Tablestore 表格定义 Primary Key 列表一致。Primary Key 用于唯一确定一行的数据,一旦映射表的 Primary Key 列表与 Tablestore 表格的 PK 不一致,可能导致 SQL 查询结果出现非预期错误。


    例如,您的 Tablestore 实例 sh_tpch 中包含 test001 表格,其中只有一列 pk0。使用 show 命令可查看该表已创建成功:



  3. 使用select语句执行SQL查询:
    • 查出所有数据:
      select * from test001;
      								


    • 执行count统计:
      select count(*) from test001;
      								


    • 执行sum统计:
      select sum(pk0) from test001;                         


执行SQL查询时,可以选择同步执行结果,返回满足条件的前 10,000 条记录;如要获取大结果集数据,请选择异步执行,并使用show query_id的方式异步获取结果:

show query_task where id = '59a05af7_1531893489231';           



其他执行语句,请查看如下说明文档:

MySQL Client 访问 DLA

您可以使用标准的 MySQL Client 快速接入 DLA 的数据实例,其连接语句为:

mysql -h service.cn-shanghai.datalakeanalytics.aliyuncs.com -P 10000 -u <username> -p <password> -c -A         
说明 其他操作语句与控制台访问一致。

JDBC 访问 DLA

您还可以使用标准的 Java API 访问 DLA,其连接语句为:

jdbc:mysql://service.cn-shanghai.datalakeanalytics.aliyuncs.com:10000/         
说明 其他操作语句与控制台访问一致。