全部產品
Search
文件中心

Data Lake Analytics - Deprecated:讀寫RDS MySQL資料

更新時間:Jul 06, 2024

DLA支援串連RDS(MySQL、SQLServer、PostgreSQL)資料來源,然後通過SQL文法查詢和分析RDS資料,同時支援將分析結果回寫入RDS。本文以RDS MySQL為例介紹如何通過DLA讀寫RDS資料。

注意事項

如果您的RDS執行個體位於VPC網路內,預設情況下DLA無法訪問VPC網路中的資源。為了讓DLA能夠訪問RDS執行個體,需要利用VPC反向訪問技術,即在RDS白名單中添加100.104.0.0/16 IP位址區段。具體操作請參考通過用戶端、命令列串連RDS MySQL執行個體
說明 當您在RDS白名單中添加了100.104.0.0/16 IP位址區段,即視為您同意DLA利用VPC反向訪問技術讀寫RDS資料。

準備工作

通過DLA讀寫RDS MySQL資料前,需要通過以下操作在RDS MySQL中準備測試資料:
  1. 建立RDS for MySQL執行個體。具體操作請參考快速建立RDS MySQL執行個體
  2. 在DLA中建立MySQL Schema之前,需要將IP位址區段100.104.0.0/16加入到RDS的白名單列表中。具體操作請參考通過用戶端、命令列串連RDS MySQL執行個體
  3. 建立帳號和資料庫。具體操作請參考建立資料庫和帳號
  4. 串連MySQL執行個體。具體操作請參考通過命令列、用戶端串連RDS MySQL執行個體
  5. 建立表並寫入測試資料。
    通過以下樣本在RDS MySQL中建立person表:
    create table person (
    id int,
    name varchar(1023),
    age int
    );
    person表中插入資料:
    insert into person
    values
    (1, 'james', 10),
    (2, 'bond', 20),
    (3, 'jack', 30),
    (4, 'lucy', 40);

操作步驟

您可以登入到DMS中編寫SQL建立MySQL Schema,也可以先通過MySQL用戶端或者MySQL命令列工具串連DLA,然後再編寫SQL建立MySQL Schema。本操作以登入到DMS中編寫SQL建立MySQL Schema為例進行說明。

  1. 建立RDS MySQL Schema。
    1. 登入DLA控制台
    2. 在左側導覽列單擊Serverless Presto > SQL訪問點
    3. SQL訪問點頁面的VPC網路地區,定位到RDS所在的VPC網路,然後單擊登入到DMS
      您也可以在公網網路地區,單擊登入到DMS通過公網登入到DMS建立RDS Schema。
    4. 登入執行個體對話方塊中,選擇RDS資料庫類型為MySQL,並選擇執行個體地區、執行個體ID,輸入資料庫帳號和密碼,單擊登入登入執行個體
      說明 您需要將DMS IP地址添加至RDS執行個體的白名單設定中,才能正常登入到DMS。具體操作請參見添加DMS IP地址
    5. 在DMS的SQL information_schema頁簽中,建立RDS MySQL Schema和資料表。
      建立RDS MySQL Schema:
      ​ CREATE SCHEMA hello_mysql_vpc_rds WITH DBPROPERTIES (
         CATALOG = 'mysql', 
         LOCATION = 'jdbc:mysql://rm-******fofake.mysql.rds.aliyuncs.com:3306/rds_mysql_dbname',
         USER = 'rds_mysqldb_username',
         PASSWORD = 'rds_mysqldb_password',
         INSTANCE_ID = 'rds_mysql_instance_id',
         VPC_ID = 'rds_mysqldb_vpcid'
       );​
      參數說明
      CATALOG取值為mysql,表示建立的是MySQL Schema。
      LOCATIONRDS MySQL的串連資訊,由jdbc:mysql://RDS MySQL串連地址:3306/rds_mysql_dbname
      USERRDS MySQL中的資料庫帳號。
      PASSWORDUSER對應的密碼。
      INSTANCE_IDRDS MySQL的執行個體ID。
      VPC_IDRDS MySQL的VPC ID。
      建立RDS MySQL資料表:
      ​create external table person (
      id int,
      name varchar(1023),
      age int
      ) tblproperties (
      table_mapping = "person"
      );​
  2. 查詢資料。
    資料表建立成功後,您就可以在DLA中通過SELECT查詢RDS MySQL中的資料了。
    ​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)​
  3. 將OSS資料寫入RDS MySQL。
    在DLA中讀取RDS資料,並不是RDS在DLA中的典型應用情境。因為RDS本身能承載的資料量有限,不適合巨量資料分析。更多的情境是在DLA中對儲存在OSS、Tablestore中的巨量資料進行分析,分析完成之後把結果資料回寫到RDS中,供前台業務使用。DLA如何讀取OSS中的資料,請參見操作步驟
    person表為例,通過以下SQL語句把oss_db中customer的十條記錄進行了轉換,然後插入到hello_mysql_vpc_rds.person表中。
    ​mysql> insert into hello_mysql_vpc_rds.person
    select c_custkey, c_name, c_custkey + 20 from oss_db.customer limit 10;
    +------+
    | rows |
    +------+
    |   10 |
    +------+
    1 row in set (4.57 sec)​