天天看點

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇

直播視訊請點選 直播

觀看。

本次分享将從五個方面講解。

01 走進MaxCompute生态

02 開源ETL工具

03 用戶端簡介

04 PyODPS簡介

05 實操展示

一、走進MaxCompute生态

首先來看下

MaxCompute

産品能支援的外部工具,大概可以分為商業智能、開發管理、傳輸排程、程式設計接口。本次分享主要關注商業智能(BI)工具這一闆塊,可以看到 MaxCompute 官方內建有Tableau、FineReport、FineBI、Quick BI。其中Tableau、FineBI、FineReport是在特定的版本會内置 MaxCompute 驅動,如果需要通過JDBC連接配接 MaxCompute ,還是需要手動加載 MaxCompute JDBC驅動,Quick BI作為阿裡雲的産品,是可以通過阿裡雲賬号和AK資訊直接連接配接的,同時在8.6及以上版本的Yonghong Desktop也是可以通過内置驅動連接配接 MaxCompute。在商業智能部分還有開源BI工具,Superset、Davinci也可以連接配接 MaxCompute。

在開發管理部分,是我們第二講的内容,包括DBeaver、DataGrip、SQL Workbench/J。

同時我們的産品還內建了 Kafka和Flink開源引擎。支援的ETL開源工具有Kettle、Airflow、Azkaban,這一部分是本次分享來介紹。支援的程式設計接口有Python、JDBC、SQLAlchemy。

除了支援的外部工具,MaxCompute 自身也有開放生态,包括内建開源引擎 Spark,遷移工具MMA,開發生态PyODPS、Mars,工具生态Web-Console等。同時 MaxCompute 也與阿裡雲内部産品共同建構了豐富的解決方案生态和資料應用生态。

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇

二、開源ETL工具

主要介紹一下開源ETL工具通過哪些方式連接配接 MaxCompute 。開源ETL工具包含,Airflow、Azkaban、Kettle。

首先看下Airflow,Airflow是python編寫的一款排程工具,内部有Python Operator和Bash Operator , 等各種Operator。也支援自定義插件的開發,Airflow是通過command Operator控制MaxCompute用戶端通過指令行的方式,送出SQL任務,對于Python SDK可以通過Python py檔案這種方式送出,Java sdk可以通過java -jar方式送出。因為Airflow支援Python Operator,是以可以直接內建PyODPS,可以直接寫Python代碼。第二部分是Azkaban,Azkaban主要是通過command送出我們的任務,可以通過MaxCompute提供的程式設計接口送出SQL任務。Kettle可以通過JDBC直接連接配接MaxCompute。

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇

三、MaxCompute CLI用戶端簡介

MaxCompute用戶端支援運作在Linux/Mac/Window三個系統上。

安裝

•JDK 1.8以上。

•已經建立MaxCompute項目,擁有該項目權限的賬号

配置

•修改conf檔案夾下的odps_config.ini檔案

•填寫ak、項目名、endpoint

使用

•Linux/Mac上執行bin目錄下的odpscmd,windows執行bin目錄下的odpscmd.bat

•支援執行單個sql語句,執行sql檔案,上傳資源,上傳下載下傳資料(Tunnel)、授權等操作

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇

四、MaxCompute Python SDK(PyODPS)簡介

•PC用戶端安裝依賴于python環境,執行 pip install pyodps

•DataWorks内建PyODPS支援,通過建立PyOdps節點送出Python任務

PyODPS初始化

from odps import ODPS

o = ODPS('**your-access-id**', '**your-secret-access-key**', project='**your-project**', endpoint='**your-end-point**')

PyODPS接口

•表接口 : o.get_table o.create_table

•Sql接口:o.run_sql(異步執行)o.execute_sql(同步執行)

•PyOdpsDataFrame:DataFrame(o.get_table)、o.get_table().to_df()

•上傳下載下傳資料:create_upload_session() create_download_session()

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇

五、實操展示

Airflow實操展示

請點選

視訊

檢視實操部分

Azkaban實操展示

Kettle實操展示

更多關于大資料計算、雲數倉技術交流,歡迎掃碼加入 “MaxCompute開發者社群” 釘釘群

外部工具連接配接SaaS模式雲數倉MaxCompute—ETL工具篇