DLA实现跨地域、跨实例的多AnalyticDB读写访问

栏目: 数据库 · 发布时间: 5年前

内容简介:实时数据仓库ADB(AnalyticDB)云产品:数据湖分析服务DLA(Data Lake Analytics)云产品:数据湖分析DLA简介:
  1. 介绍

实时数据仓库ADB(AnalyticDB)云产品: https://www.aliyun.com/produc...

数据湖分析服务DLA(Data Lake Analytics)云产品: https://www.aliyun.com/produc...

数据湖分析DLA简介: https://yq.aliyun.com/article...

DLA作为数据湖数据分析场景中的中枢,能够对云上众多数据存储、数据库等系统进行融合数据分析,为用户提供统一操作视角,打通系统边界,对分析结果进行回流。

DLA实现跨地域、跨实例的多AnalyticDB读写访问

目前已经支持的数据存储、数据库系统包括:

数据系统 源(查询) 目标(数据回流)

OSS 支持 支持

Table Store 支持 支持

AnalyticDB 支持 支持

RDS for MySQL 支持 支持

用户自建 MySQL 支持 支持

RDS for PostgreSQL 支持 支持

用户自建PostgreSQL 支持 支持

RDS for SQL Server 支持 支持

用户自建SQL Server 支持 支持

云数据库 Redis 支持 暂不支持

用户自建Redis 支持 暂不支持

云数据库 MongoDB 支持 暂不支持

用户自建MongoDB 支持 暂不支持

PolarDB 支持 支持

通过弹性网络技术,目前DLA支持了跨地域(region)的数据访问能力,上述的多个数据源同时通过DLA也具备了跨多个地域的融合分析能力,能够帮助用户实现多云(Multicloud: https://en.wikipedia.org/wiki... )场景下的数据融合分析。

本文重点介绍通过DLA实现跨地域、跨实例的多AnalyticDB读写访问。涉及的网络结构如下图所示,假设用户使用的DLA服务位于上海region。

DLA实现跨地域、跨实例的多AnalyticDB读写访问

  1. 场景示例

ADB中的数据

假设ADB的两个实例中,都已经存在如下两张表,对应ADB的DDL为:

CREATE TABLE customer (

c_custkey int COMMENT '',

c_name varchar COMMENT '',

c_address varchar COMMENT '',

c_nationkey int COMMENT '',

c_phone varchar COMMENT '',

c_acctbal double COMMENT '',

c_mktsegment varchar COMMENT '',

c_comment varchar COMMENT '',

PRIMARY KEY (C_CUSTKEY,C_NATIONKEY)

)

PARTITION BY HASH KEY (C_CUSTKEY) PARTITION NUM 32

TABLEGROUP tpch_50x_group

OPTIONS (UPDATETYPE='realtime')

COMMENT '';

CREATE DIMENSION TABLE nation (

n_nationkey int COMMENT '',

n_name varchar COMMENT '',

n_regionkey int COMMENT '',

n_comment varchar COMMENT '',

PRIMARY KEY (N_NATIONKEY)

)

OPTIONS (UPDATETYPE='realtime')

COMMENT '';

其中customer表有7,500,000条数据,nation表有25条数据。

DLA映射北京region的ADB实例

DLA实现跨地域、跨实例的多AnalyticDB读写访问

由于使用的是上海region的DLA服务,所以,需要通过公网访问该北京region的ADB实例的经典网络地址:ads-dla-test-f508cb23.cn-beijing-1.ads.aliyuncs.com:10006(跨region访问不能走VPC,网络不通)

连接上海region的DLA服务,执行如下建库和建表命令,映射指向北京region ADB实例和customer表。

CREATE DATABASE beijing_public_ads_dla_test
WITH DBPROPERTIES (

catalog = 'ads',
location = 'jdbc:mysql://ads-dla-test-f508cb23.cn-beijing-1.ads.aliyuncs.com:10006/ads_dla_test',
instance = 'ads_dla_test',
user = 'L*T',
password = '****'

)

COMMENT '';

CREATE EXTERNAL TABLE IF NOT EXISTS customer (

c_custkey` INT NULL COMMENT '',
`c_name` STRING NULL COMMENT '',
`c_address` STRING NULL COMMENT '',
`c_nationkey` INT NULL COMMENT '',
`c_phone` STRING NULL COMMENT '',
`c_acctbal` DOUBLE NULL COMMENT '',
`c_mktsegment` STRING NULL COMMENT '',
`c_comment` STRING NULL COMMENT ''

);

CREATE EXTERNAL TABLE IF NOT EXISTS nation (

n_nationkey int COMMENT '',

n_name varchar COMMENT '',

n_regionkey int COMMENT '',

n_comment varchar COMMENT ''

);

DLA映射上海region的ADB实例

DLA实现跨地域、跨实例的多AnalyticDB读写访问

由于使用的是上海region的DLA服务,所以,可以通过VPC网络地址访问同上海region的ADB实例:dla-data-4d5443bf-vpc.cn-shanghai-1.ads.aliyuncs.com:10001

注意:为ADB生成的VPC URL必须是为

连接上海region的DLA服务,执行如下建库和建表命令,映射指向上海region ADB实例和customer表。

CREATE DATABASE shanghai_vpc_dla_data
WITH DBPROPERTIES (

catalog = 'ads',
location = 'jdbc:mysql://dla-data-4d5443bf-vpc.cn-shanghai-1.ads.aliyuncs.com:10001/dla_data',
instance = 'dla_data',
user = 'L*M',
password = '****'

)

COMMENT '';

CREATE EXTERNAL TABLE IF NOT EXISTS customer (

c_custkey INT NULL COMMENT '',

c_name STRING NULL COMMENT '',

c_address STRING NULL COMMENT '',

c_nationkey INT NULL COMMENT '',

c_phone STRING NULL COMMENT '',

c_acctbal DOUBLE NULL COMMENT '',

c_mktsegment STRING NULL COMMENT '',

c_comment STRING NULL COMMENT ''

);

CREATE EXTERNAL TABLE IF NOT EXISTS nation (

n_nationkey int COMMENT '',

n_name varchar COMMENT '',

n_regionkey int COMMENT '',

n_comment varchar COMMENT ''

);

查询

如下是按照国家统计客户的数量的查询示例,由于上述两个ADB实例中的两张表的数据相同,所以通过DLA查询,下面四个查询的结果是相同的。查询是通过上海region的DLA执行的:

查询1:北京region ADB的customer表join北京region ADB的nation表;

SELECT a.c_nationkey, b.n_name, count(*) as cnt

FROM beijing_public_ads_dla_test.customer a

JOIN beijing_public_ads_dla_test.nation b ON a.c_nationkey = b.n_nationkey

GROUP BY a.c_nationkey, b.n_name

ORDER BY cnt DESC;

查询2:上海region ADB的customer表join上海region ADB的nation表;

SELECT a.c_nationkey, b.n_name, count(*) as cnt

FROM shanghai_vpc_dla_data.customer a

JOIN shanghai_vpc_dla_data.nation b ON a.c_nationkey = b.n_nationkey

GROUP BY a.c_nationkey, b.n_name

ORDER BY cnt DESC;

查询3:上海region ADB的customer表join北京region ADB的nation表;

SELECT a.c_nationkey, b.n_name, count(*) as cnt

FROM shanghai_vpc_dla_data.customer a

JOIN beijing_public_ads_dla_test.nation b ON a.c_nationkey = b.n_nationkey

GROUP BY a.c_nationkey, b.n_name

ORDER BY cnt DESC;

查询4:北京region ADB的customer表join上海region ADB的nation表;

SELECT a.c_nationkey, b.n_name, count(*) as cnt

FROM beijing_public_ads_dla_test.customer a

JOIN shanghai_vpc_dla_data.nation b ON a.c_nationkey = b.n_nationkey

GROUP BY a.c_nationkey, b.n_name

ORDER BY cnt DESC;

写入

通过DLA执行INSERT from SELECT,将其他数据源的查询结果写入ADB数据源中。

在DLA中执行如下语句,指向上海region的OSS bucket建库、建表:

CREATE DATABASE tpch_50x_text
WITH DBPROPERTIES (

catalog = 'oss',
location = 'oss://oss-****/datasets/tpch/50x/text_date/'

)

COMMENT '';

CREATE EXTERNAL TABLE tpch_50x_text . nation (

n_nationkey` int,
`n_name` string,
`n_regionkey` int,
`n_comment` string

)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '|'
STORED AS TEXTFILE

LOCATION 'oss://oss- * */datasets/tpch/50x/text_date/nation_text';

更多关于DLA对OSS的数据查询,请参考:

https://yq.aliyun.com/article... (教程:使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集)

https://yq.aliyun.com/article... (教程:Data Lake Analytics + OSS数据文件格式处理大全)

https://yq.aliyun.com/article... (Data Lake Analytics中OSS LOCATION的使用说明)

https://yq.aliyun.com/article... (教程:如何使用Data Lake Analytics创建分区表)

https://yq.aliyun.com/article... (使用Data Lake Analytics快速分析OSS上的日志文件)

https://yq.aliyun.com/article... (教程:如何通过DLA实现数据文件格式转换)

如下示例场景:

通过上海region DLA服务,将上海region的OSS bucket数据写入上海region的ADB中:

INSERT INTO shanghai_vpc_dla_data.nation

SELECT * FROM tpch_50x_text.nation;

通过上海region DLA服务,将上海region的OSS bucket数据写入北京region的ADB中:(由于需要跨region的公网访问,建议该模式下数据量不要太大)

INSERT INTO beijing_public_ads_dla_test.nation

SELECT * FROM tpch_50x_text.nation;

通过上海region DLA服务,将上海region的ADB数据写入北京region的ADB中:(由于需要跨region的公网访问,建议该模式下数据量不要太大)

INSERT INTO beijing_public_ads_dla_test.nation

SELECT * FROM shanghai_vpc_dla_data.nation;

通过上海region DLA服务,将北京region的ADB数据写入上海region的ADB中:(由于需要跨region的公网访问,建议该模式下数据量不要太大)

INSERT INTO shanghai_vpc_dla_data.nation

SELECT * FROM beijing_public_ads_dla_test.nation;

本文作者:julian.zhou

阅读原文

本文为云栖社区原创内容,未经允许不得转载。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

物联网导论(第2版)

物联网导论(第2版)

刘云浩 / 科学出版社 / 2013-8 / 45.00元

物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化三个重要特征。 《物联网工程专业系列教材:物联网导论(第2版)》从物联网的感知识别层、网络构建层、管理服务层和综合应用层这四层分别进行阐述,深入浅出地为读者拨开萦绕于物联网这个概念的重重迷雾,引领求知者渐渐步入物联网世界,帮助探索者把握第三......一起来看看 《物联网导论(第2版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具