1. 程式人生 > >Data Lake Analytics: 讀/寫PolarDB的資料

Data Lake Analytics: 讀/寫PolarDB的資料

DLA + 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_IDINSTANCE_IDVPC_ID 是你的PolarDB所在VPC的ID, 如下圖所示:

VPC_ID和INSTANCE_ID

建表需要這兩個額外資訊是因為現在使用者的資料庫都是處於使用者自己的VPC內部,預設情況下 DLA 是訪問不了使用者 VPC 裡面的資源的,為了讓DLA能夠訪問到使用者PolarDB面的資料,我們需要利用阿里雲的VPC反向訪問技術。

許可權宣告: 當您通過上述方式建庫,就視為您同意我們利用VPC反向訪問的技術去讀寫您的PolarDB。

另外您還需要把 100.104.0.0/16 IP地址段加入到你的PolarDB的白名單列表,這是我們VPC反向訪問的IP地段,如下圖:

白名單

同時細心的讀者可能注意到我們這裡的 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基本一樣,因此這裡的介紹比較簡單,更多的內容就留給讀者自己去探索了。

Happy DLAing!