天天看點

DLA Presto支援自建HiveMetastore資料源操作步驟

背景介紹

阿裡雲資料湖分析(DLA)産品提供一站式的資料湖分析與計算服務。DLA Presto可以實作高效的線上分析,主要面向使用者探索式分析、報表以及輕量ETL的場景。

DLA Presto已經支援比較多的資料源,但對于使用者自建的大資料叢集(它中繼資料存儲在HiveMetastore,資料存儲在HDFS),有時也希望和OSS、RDS、AnalyticsDB、MaxCompute、TableStore、ElasticSearch等資料關聯查詢,但卻較難實作。是以DLA近期釋出了支援通路使用者自建HiveMetastore的功能,可以通過DLA分析自建HiveMetastore的資料。此外還能通過DLA Presto加速查詢性能。

操作步驟

1. 準備資料。

  • 在自建的HiveMetastore中建立庫,表,并插入一條記錄。
CREATE DATABASE testdb;

CREATE EXTERNAL TABLE if not exists testdb.testTable(
                id int,
                name string);

insert into testdb.testTable(id, name) values (1, "jack");      

2.

開通DLA Presto CU版

3. 

綁定資料源網絡

。注意這裡綁定的資料源網絡和HiveMetastore要在同一個vpc下面,確定網絡可以聯通。

4. 連接配接DLA,建立庫:

CREATE DATABASE `dladb`
WITH DBPROPERTIES (
    catalog = 'customer_hive',
    database = 'testdb',
    location = '172.16.199.34:9083',
    vpc_id = 'xxx',
    hdfs_properties = 'fs.defaultFS=hdfs://172.16.199.41:9000'
)      

說明 您也可以通過MySQL用戶端或者程式代碼等方式連結DLA,然後執行SQL指令建立庫。參數說明:

  • catalog 固定為customer_hive,表示資料源是使用者的HiveMetastore資料。
  • database 指定使用者HiveMetastore的HiveServer中的庫名。
  • location 指定使用者HiveMetastore的HiveServer位址。
  • vpc_id 指定HiveMetastore所在的vpc。
  • hdfs_properties 指定HiveMetastore中預設的hdfs配置。包括兩種情況:
    • 非HA的HDFS:
hdfs_properties='fs.defaultFS=hdfs://172.16.199.41:9000'

注釋,這裡的hdfs的配置為自建HDFS的位址,需要指定為IP或域名,不能為hostname。      
    • HA的HDFS:
hdfs_properties='fs.defaultFS=hdfs://emr-cluster;dfs.nameservices=emr-cluster;dfs.client.failover.proxy.provider.emr-cluster=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider;dfs.ha.namenodes.emr-cluster=nn1,nn2;dfs.nameservice.id=emr-cluster;dfs.namenode.rpc-address.emr-cluster.nn1=172.16.199.34:8020;dfs.namenode.rpc-address.emr-cluster.nn2=172.16.199.35:8020'

注釋,這裡的hdfs的配置為自建HA HDFS的配置,需要指定為IP或域名,不能為hostname。      
  1. 建表,可以通過create table或msck兩種方式修表。
  • 建立表映射
CREATE EXTERNAL TABLE if not exists dladb.testTable(
                id int,
                name string);      

說明 表名testTable需要和HiveMetastore中對于的db的表名相同。

  • msck建立表映射
msck repair database dladb;      
  1. 查詢表

查詢或通路資料由于隻有CU的計算資源和HiveMetastore網絡可以聯通,是以所有通路HiveMetastore表的SQL語句都需要指定

hint: /*+cluster=your-vc-name*/ 

,這樣SQL就會在CU中執行。

示例:

mysql> /*+ cluster=vc-test */ select * from  dladb.testTable;
+------+------+
| id   | name |
+------+------+
|    1 | jack |
+------+------+
1 row in set (1.74 sec)      

更多資訊可參考DLA幫助文檔。

使用DLA Presto的優勢

DLA Presto(相容Presto)的目标是提供比開源自建更高的成本效益、開箱即用的體驗、友善的資料攝入、MySQL生态帶來的簡單易用、内置各種優化的資料湖分析計算服務。使用者可以先通過使用Serverless版本低成本試用,然後根據使用頻率的高低、對資源是否有強獨占的需求來決定生産環境使用Serverless版本還是CU版本。DLA Presto還在不斷發展中,目前規劃中的一些特性包含:

  • 按照時間段或者工作負載進行自動擴縮容,幫助使用者節省成本。
  • 支援檔案緩存機制,提升查詢性能
  • 内置大資料最佳實踐,自動攔截Bad SQL

歡迎大家關注我們的釘釘群擷取最新的資訊:

DLA Presto支援自建HiveMetastore資料源操作步驟