Data Lake Analytics: 读/写PolarDB的数据

哈希冰川
• 阅读 973

Data Lake Analytics: 读/写PolarDB的数据
Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高可达 100T,性能最高提升至 MySQL 的 6 倍。这篇教程带你玩转 DLA 的 PolarDB 支持。

创建数据库
在 DLA 里面创建一个底层映射到 PolarDB 的外表的语法如下:

CREATE SCHEMA porlardb_test WITH DBPROPERTIES (
CATALOG = 'mysql',
LOCATION = 'jdbc:mysql://pc-bp1dlebalabala.rwlb.rds.aliyuncs.com:3306/dla_test',
USER = 'dla_test_1',
PASSWORD = 'the-fake-password',
VPC_ID = 'vpc-2zeij924vxd303kwifake',
INSTANCE_ID = 'rm-2zer0vg58mfo5fake'
);
跟普通的建表不同的是这里多了两个属性: VPC_ID 和 INSTANCE_ID 。VPC_ID 是你的PolarDB所在VPC的ID, 如下图所示:

Data Lake Analytics: 读/写PolarDB的数据

建表需要这两个额外信息是因为现在用户的数据库都是处于用户自己的VPC内部,默认情况下 DLA 是访问不了用户 VPC 里面的资源的,为了让DLA能够访问到用户PolarDB面的数据,我们需要利用阿里云的VPC反向访问技术。

权限声明: 当您通过上述方式建库,就视为您同意我们利用VPC反向访问的技术去读写您的PolarDB。

另外您还需要把 100.104.0.0/16 IP地址段加入到你的PolarDB的白名单列表,这是我们VPC反向访问的IP地段,如下图:

Data Lake Analytics: 读/写PolarDB的数据

同时细心的读者可能注意到我们这里的 CATALOG 写的是 mysql, 而不是 polardb, 这是因为 PolarDB 100%兼容MySQL,我们直接以MySQL协议去访问就好了。

创建表
数据库建完之后,我们可以建表了,我们先在你的 PolarDB 里面建立如下的 person 表用来做测试:

create table person (

   id int,
   name varchar(1023),
   age int

);
并且向里面插入一下测试数据:

insert into person
values (1, 'james', 10),

     (2, 'bond', 20), 
     (3, 'jack', 30), 
     (4, 'lucy', 40);

然后就可以在 DLA 的数据库里面建立相应的映射表了:

create external table person (

   id int,
   name varchar(1023),
   age int

);
这样我们通过MySQL客户端连接到 DLA 数据库上面,就可以对 PolarDB 数据库里面的数据进行查询了:

mysql> select * from person;
id name age
1 james 10
2 bond 20
3 jack 30
4 lucy 40

4 rows in set (0.35 sec)
总结
今天主要介绍了一下如果在DLA里面查询PolarDB的数据,因为PolarDB本身兼容MySQL协议,所以在DLA里面的使用上跟MySQL基本一样,因此这里的介绍比较简单,更多的内容就留给读者自己去探索了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
POLARDB v2.0 技术解读
回顾POLARDB1.0POLARDB1.0主要的改进包括采用了计算存储分离的架构,完全兼容MYSQL,性能是原生MySQL的6倍。一个用户集群可以在分钟级弹性扩展到16个计算节点,对业务完全透明的计算和存储分离代理,从库延迟仅毫秒级。存储为分布式块存储,可以弹性扩展至100TB的规模。存储层面采用多副本技术,使得数据库的RPO做到了0,完全没有丢
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Follower to Leader,阿里云数据库都做了什么?
由于业务飞速发展,亚马逊和阿里两位电商巨头在10年前开始了自己的去“O”(Oracle数据库)运动,一直以来阿里云在数据库方面被认为是AWS跟随者,如今已经基本做到与AWS持平,甚至在某些方面已经领先。根据Gartner统计,阿里云已经位居全球云数据库市场份额前三,年增速在115%。同期AWS增速为74%,Oracle为66%。而POLARDB在201
Wesley13 Wesley13
3年前
MySQL · 引擎特性 · WAL那些事儿
前言日志先行的技术广泛应用于现代数据库中,其保证了数据库在数据不丢的情况下,进一步提高了数据库的性能。本文主要分析了WAL模块在MySQL各个版本中的演进以及在阿里云新一代数据库POLARDB中的改进。基础知识用户如果对数据库中的数据就行了修改,必须保证日志先于数据落盘。当日志落盘后,就可以给用户返回操作成功,并不需要保证当时对数
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn