共计 2141 个字符,预计需要花费 6 分钟才能阅读完成。
简介:本文次要解说开源 ETL 工具如何连贯 MaxCompute
直播视频请点击 直播 观看。
本次分享将从五个方面解说。
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 也与阿里云外部产品独特构建了丰盛的解决方案生态和数据利用生态。
二、开源 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。
三、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)、受权等操作
四、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()
五、实操展现
Airflow 实操展现
请点击 视频 查看实操局部
Azkaban 实操展现
请点击 视频 查看实操局部
Kettle 实操展现
请点击 视频 查看实操局部
版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。