AnalyticDB MySQL湖倉版(3.0)支援通過XIHE SQL和Spark SQL訪問OSS資料。本文以基金交易資料處理為例,介紹通過XIHE SQL和Spark SQL訪問OSS資料的具體步驟。
前提條件
操作步驟
準備資料。
訪問資料。
通過XIHE SQL訪問OSS資料
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版(3.0)頁簽,單擊目的地組群ID。
在左側導覽列,單擊作業開發>SQL開發。
在SQLConsole視窗,選擇Job型資源群組和XIHE引擎。
建立資料庫。如果有已建立的資料庫,可以忽略本步驟。樣本如下:
CREATE DATABASE adb_demo;
建立OSS外表。
建立交易資訊表
建立使用者資訊表
查詢外表資料。
您可以選擇通過同步執行或非同步執行查詢資料,同步執行的結果會直接顯示,非同步執行會返回job_id,您可以通過job_id查詢非同步任務狀態,判斷任務是否執行成功。
同步查詢
樣本一:查詢交易機構SXS_0010,在0603至0604的100條交易記錄。
SELECT * FROM tradelist_csv WHERE t_cdate >= '2018-06-03' and t_cdate <= '2018-06-04' and t_agencyno = 'SXS_0010' limit 100;
返回結果:
+-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+ | t_userid | t_dealdate | t_businflag | t_cdate | t_date | t_serialno | t_agencyno | t_netno | +-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+ | 00041972 | 2018-06-03 09:11:57 | 保本基金B | 2018-06-03 | 2018-06-03 | 2018-06-03-000846 | SXS_0010S | STORE-0135 | +-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+ | 00051912 | 2018-06-03 09:28:20 | 保本基金D | 2018-06-03 | 2018-06-03 | 2018-06-03-001046 | SXS_0010S | STORE-0397 | +-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+ | 00120370 | 2018-06-03 11:21:39 | 保本基金B | 2018-06-03 | 2018-06-03 | 2018-06-03-002393 | SXS_0010S | STORE-0800 | +-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+ | 00165308 | 2018-06-03 12:35:35 | 保本基金D | 2018-06-03 | 2018-06-03 | 2018-06-03-003281 | SXS_0010S | STORE-0340 | +-----------+---------------------+---------------+--------------+--------------+-------------------+--------------+------------+
說明本樣本為部分返回結果,實際結果請以控制台為準。
樣本二:查詢各城市、男性女性人群,購買的基金總額(多表Join查詢)。
SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance FROM tradelist_csv , userinfo WHERE u_userid = t_userid GROUP BY u_city, u_gender ORDER BY sum_balance DESC;
返回結果:
+-----------+------------+----------------+ | u_city | u_gender | sum_balance | +-----------+------------+----------------+ | Beijing | male | 2445539161 | +-----------+------------+----------------+ | Guangzhou | male | 1271999857 | +-----------+------------+----------------+ | Qingdao | male | 1266748660 | +-----------+------------+----------------+ | Wuhan | male | 12641688475 | +-----------+------------+----------------+
說明本樣本為部分返回結果,實際結果請以控制台為準。
非同步查詢
查詢各城市、男性女性人群,購買的基金總額(多表Join查詢)。
SUBMIT JOB SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance FROM tradelist_csv , userinfo WHERE u_userid = t_userid GROUP BY u_city, u_gender ORDER BY sum_balance DESC;
返回結果:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2023091410365702101701713803151****** | +---------------------------------------+
使用
SUBMIT JOB
提交非同步任務後,您可以通過job_id終止非同步任務或查詢非同步任務狀態,具體操作,請參見非同步提交任務。
通過Spark SQL訪問OSS資料
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版(3.0)頁簽,單擊目的地組群ID。
在左側導覽列,單擊作業開發>SQL開發。
在SQLConsole視窗,選擇Job型資源群組和Spark引擎。
建立資料庫。如果有已建立的資料庫,可以忽略本步驟。樣本如下:
CREATE DATABASE adb_test;
建立OSS外表。
建立交易資訊表
建立使用者資訊表
查詢資料。
說明執行Spark SQL語句,只返回執行成功或者失敗,不返回查詢結果。您可以在Spark Jar開發頁面應用列表頁簽中的日誌查看查詢結果。詳情請參見查看Spark應用資訊。
樣本一:查詢交易機構SXS_0010,在0603至0604的100條交易記錄。
SELECT * FROM adb_test.tradelist_csv WHERE t_cdate >= '2018-06-03' and t_cdate <= '2018-06-04' and t_agencyno = 'SXS_0010' LIMIT 100;
樣本二:查詢各城市、男性女性人群,購買的基金總額(多表Join查詢)。
SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance FROM adb_test.tradelist_csv , adb_test.userinfo WHERE u_userid = t_userid GROUP BY u_city, u_gender ORDER BY sum_balance DESC;