博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DLA实现跨地域、跨实例的多AnalyticDB读写访问
阅读量:5760 次
发布时间:2019-06-18

本文共 5990 字,大约阅读时间需要 19 分钟。

1. 介绍

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

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

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

数据系统 源(查询 目标(数据回流)
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: )场景下的数据融合分析。

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

2. 场景示例

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 32TABLEGROUP tpch_50x_groupOPTIONS (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实例

由于使用的是上海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实例

由于使用的是上海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 cntFROM beijing_public_ads_dla_test.customer aJOIN beijing_public_ads_dla_test.nation b ON a.c_nationkey = b.n_nationkeyGROUP BY a.c_nationkey, b.n_nameORDER BY cnt DESC;复制代码
  • 查询2:上海region ADB的customer表join上海region ADB的nation表;
SELECT a.c_nationkey, b.n_name, count(*) as cntFROM shanghai_vpc_dla_data.customer aJOIN shanghai_vpc_dla_data.nation b ON a.c_nationkey = b.n_nationkeyGROUP BY a.c_nationkey, b.n_nameORDER BY cnt DESC;复制代码
  • 查询3:上海region ADB的customer表join北京region ADB的nation表;
SELECT a.c_nationkey, b.n_name, count(*) as cntFROM shanghai_vpc_dla_data.customer aJOIN beijing_public_ads_dla_test.nation b ON a.c_nationkey = b.n_nationkeyGROUP BY a.c_nationkey, b.n_nameORDER BY cnt DESC;复制代码
  • 查询4:北京region ADB的customer表join上海region ADB的nation表;
SELECT a.c_nationkey, b.n_name, count(*) as cntFROM beijing_public_ads_dla_test.customer aJOIN shanghai_vpc_dla_data.nation b ON a.c_nationkey = b.n_nationkeyGROUP BY a.c_nationkey, b.n_nameORDER 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的数据查询,请参考:

(教程:使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集)
(教程:Data Lake Analytics + OSS数据文件格式处理大全)
(Data Lake Analytics中OSS LOCATION的使用说明)
(教程:如何使用Data Lake Analytics创建分区表)
(使用Data Lake Analytics快速分析OSS上的日志文件)
(教程:如何通过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;复制代码

 

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

转载于:https://juejin.im/post/5c666f446fb9a049bb7cdc29

你可能感兴趣的文章
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
[转载] 中华典故故事(孙刚)——19 万岁
查看>>
修改hosts文件里面的主机名,oralce asm无法启动
查看>>
Maven学习总结(十)——使用Maven编译项目gbk的不可映射问题
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
Linux远程访问及控制
查看>>
MongoDB实战系列之五:mongodb的分片配置
查看>>
Unable to determine local host from URL REPOSITORY_URL=http://
查看>>
ORACLE配置,修改tnsnames.ora文件实例
查看>>
Workstation服务无法启动导致无法访问文件服务器
查看>>
ant中文教程
查看>>
Linux常用命令(一)
查看>>
【VMCloud云平台】SCAP(四)租户(一)
查看>>
基于 Android NDK 的学习之旅----- C调用Java
查看>>
Windows 10 技术预览
查看>>
Tomcat http跳转https
查看>>
一个自动布署.net网站的bat批处理实例
查看>>
我的友情链接
查看>>
Centos6.6安装选包及基础场景说明
查看>>