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

阅读原文

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


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

查看所有标签

猜你喜欢:

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

京东技术解密

京东技术解密

京东研发体系 / 电子工业出版社 / 2014-11-18 / 65

京东高速的增长、闪电响应的供应链、庞大的团队规模等背后内幕,对于业界一直像谜一样神秘。随着成为中国B2C领导厂商以及在纳斯达克上市,京东越来越需要开放自己,与业界形成更好的交流与融合。《京东技术解密》的面世,就是京东技术团队首次向业界集体亮相。本书用翔实的内容为读者逐一解答——如何用技术支撑网站的综合竞争实力,如何把握技术革新的时间点,如何应对各种棘手问题及压力,如何在网站高速运转的情况下进行系统......一起来看看 《京东技术解密》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具