BpFile(id=290, bpId=166, name=大数据近实时数据投递MaxCompute, author=null, keyword=Kafka,MaxCompute,DataWorks,Datahub,大数据,数据仓库, description=介绍离线大数据场景使用MaxCompute构建云上近实时数仓,打通云下数据上云链路,解决数据复杂类型支持和动态分区问题,满足高级数据处理需求的最佳实践。, position=null, ossUrl=bp-7CJ5HVU4RM0C39YR.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
本文介绍离线大数据场景使MaxCompute构建云
上近实时数仓,打通云下数据上云链路,解决数据复杂类型支持和动态分区问题,满足高级数据处理需求的最佳实践。
l混合云环境下,现有业务系统零改造,打通数据上云链路。
l使用UDF实现复杂数据类型转换和数据动态分区。
l使用DataWorks配置周期调度业务流程,数据自动入仓。
l借助MaxCompute优化计算引擎,实现降本增效。
产品列表
云服务器ECS
专有网络VPC
访问控制RAM
数据总线DataHub
E-MapReduceEMR
DataWorks
大数据计算服务MaxCompute
, templateId=67DSF44QDB98A7B5, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=67DSF44QDB98A7B5, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1大数据近实时数据投递 MaxCompute 最佳实践
业务架构
场景描述
解决问题
本文介绍离线大数据场景使用 MaxCompute构建云
l 混合云环境下,现有业务系统零改造,打通数
据上云链路。
上近实时数仓,打通云下数据上云链路,解决数据复
l 使用 UDF实现复杂数据类型转换和数据动态
分区。
杂类型支持和动态分区问题,满足高级数据处理需求
l 使用 DataWorks配置周期调度业务流程,数据
自动入仓。
的最佳实践。
l 借助 MaxCompute优化计算引擎,实现降本
增效。
产品列表
l 云服务器 ECS
l 专有网络 VPC
l 访问控制 RAM
l 数据总线 DataHub
l E-MapReduce EMR
l DataWorks
l 大数据计算服务 MaxCompute
2云服务器 ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
企业上云实践
大数据近实时数据投递MaxCompute
最佳实践
文档版本:20200820(发布日期)
文档版本:20150122(发布日期) I
3大数据近实时数据投递 MaxCompute 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 大数据近实时数据投递 MaxCompute
文档编号 166
文档版本 V1.0
版本日期 2020-08-20
文档状态 外部发布
制作人 谈慧杰
审阅人 云魁、弦望
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-08-19 谈慧杰、林适 云魁、弦望 创建文档
V1.1 2020-08-20 张明远 谈慧杰 文档优化
文档版本:20200820 I
4大数据近实时数据投递 MaxCompute 前言
前言
概述
阿里云推出的大数据计算服务 MaxCompute,提供快速、全托管、免运维的 GB到 EB
级云数仓解决方案。MaxCompute支持 SQL、MapReduce、UDF(Java/Python)、
Graph、基于 DAG的处理、交互式、内存计算、机器学习等计算类型及 MPI迭代类算
法。大幅简化了企业大数据平台的应用架构,具有强数据安全、低成本、免运维、极
致弹性扩展等特点。 MaxCompute已与数据集成、 DataWorks、 QuickBI、机器学习 PAI、
ADB、推荐引擎、移动数据分析等大数据产品打通,可快速集成使用,轻松应对各种
大数据应用场景。
本文以线下现有业务大数据离线数仓建设为背景,介绍如何在现有业务应用系统零改
造的前提下,从 Kafka集群切入,打通数据上云链路,解决数据复杂类型支持和动态
分区问题,将数据近实时投递至 MaxCompute,快速构建数仓服务。
应用范围
l 混合云环境下,现有业务系统零改造,打通数据上云链路。
l 使用 UDF实现复杂数据类型转换和数据动态分区。
l 使用 DataWorks配置周期调度业务流程,数据自动入仓。
l 借助 MaxCompute优化计算引擎,为后续数据应用降本增效。
名词解释
l 云服务器 ECS:Elastic Compute Service, 简称 ECS,是一种简单高效、处理能
力可弹性伸缩的计算服务。详见:https://www.aliyun.com/product/ecs
l 专有网络 VPC:Virtual Private Cloud,简称 VPC,是基于阿里云创建的自定义私
有网络,不同的专有网络之间二层逻辑隔离。您可以在自己创建的专有网络内创
建和管理云产品实例,比如 ECS、负载均衡、RDS等。在部署云资源前,您需要
结合具体业务,规划 VPC 和交换机的数量及网段等。详见:
https://www.aliyun.com/product/vpc
l 访问控制 RAM:是阿里云提供的管理用户身份与资源访问权限的服务。详见:
https://www.aliyun.com/product/ram
l E-MapReduce EMR:是构建在阿里云云服务器 ECS 上的开源 Hadoop、 Spark、
文档版本:20200820 III
5大数据近实时数据投递 MaxCompute 前言
HBase、Hive、Flink 生态大数据 PaaS 产品。提供用户在云上使用开源技术建设
数据仓库、离线批处理、在线流式处理、即时查询、机器学习等场景下的大数据解
决方案。详见: https://www.aliyun.com/product/emapreduce
l 大数据计算服务 MaxCompute:是一项大数据计算服务,它能提供快速、完全托
管的 EB级数据仓库解决方案,使您可以经济并高效的分析处理海量数据。详见:
https://www.aliyun.com/product/odps
l 数据总线 DataHub:是阿里云提供的流式数据(Streaming Data)服务,它提供流
式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于流式
数据的分析和应用。详见:https://www.aliyun.com/product/datahub
l DataWorks:是一个提供了大数据 OS能力、并以 all in one box的方式提供专业
高效、安全可靠的一站式大数据智能云研发平台。 同时能满足用户对数据治理、
质量管理需求,赋予用户对外提供数据服务的能力。详见:
https://www.aliyun.com/product/bigdata/ide
文档版本:20200820 IV
6大数据近实时数据投递 MaxCompute 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................ V
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 2
1. 配置 RAM用户 .................................................................................................................................................... 3
2. 创建基础网络环境 .............................................................................................................................................. 8
2.1. 创建华东 2专有网络 VPC .................................................................................................................. 8
2.2. 创建华东 1专有网络 VPC ................................................................................................................ 10
3. 使用 EMR搭建 Kafka集群 ............................................................................................................................... 12
3.1. 创建 Kafka集群 ................................................................................................................................. 12
3.2. 创建 Kafka Topic ................................................................................................................................. 17
4. 应用数据投递至 Kafka ...................................................................................................................................... 21
4.1. 创建 App Server ................................................................................................................................. 21
4.2. 配置 App Server 应用环境 ............................................................................................................... 29
4.3. 为 Kafka集群 Master绑定 EIP .......................................................................................................... 30
4.4. 构造业务代码将数据信息投递至 Kafka .......................................................................................... 32
5. Kafka数据拉取至 Datahub ............................................................................................................................... 35
5.1. 创建 Datahub实例 ............................................................................................................................ 35
5.2. 获取 Datahub实例访问地址 ............................................................................................................ 37
5.3. 为 Kafka集群部署 Logstash .............................................................................................................. 38
5.4. 拉取 Kafka数据信息至 Datahub ...................................................................................................... 40
6. 投递数据至 MaxCompute ................................................................................................................................. 43
6.1. 创建 DataWorks工作空间 ................................................................................................................ 43
6.2. 创建临时表 ........................................................................................................................................ 46
6.3. 创建最终表 ........................................................................................................................................ 49
6.4. 配置 Datahub数据同步至 MaxCompute并验证 ............................................................................ 53
6.5. 编写 UDTF对临时表进行数据处理和动态分区 ............................................................................. 58
6.6. 注册 UDF函数 ................................................................................................................................... 61
6.7. 验证 UDTF函数 ................................................................................................................................. 66
6.8. 配置周期调度业务流程将临时表数据处理后写入最终表 ............................................................ 67
6.9. 运维中心确认业务流程周期任务调度成功 .................................................................................... 76
6.10. 全链路数据延时 ................................................................................................................................ 78
文档版本:20200820 V
7大数据近实时数据投递 MaxCompute 最佳实践概述
最佳实践概述
场景描述
本最佳实践构建以下场景:
l 以华东 2(上海)地域模拟线下 IDC,使用阿里云 EMR服务部署 Kafka集群。
l 华东 1(杭州)地域模拟阿里云,部署 DataHub、MaxCompute等服务实例,构
建云上数仓。
l 使用 Logstash将 Kafka集群消息抽取至 MaxCompute。
l 通过 MaxCompute UDF功能执行复杂类型转换并实现数据动态分区。
l 配置 MaxCompute周期调度业务流程,实现数据准实时入仓。全链路数据延时 15
分钟左右。
示例代码
本文所有配置文件及命令行代码可从代码库获取:
https://code.aliyun.com/best-practice/166/tree/master
方案架构
文档版本:20200820 1
8大数据近实时数据投递 MaxCompute 前置条件
前置条件
在进行本文操作前,您需要完成以下准备:
l 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页
面(https://account.console.aliyun.com/v2/#/authc/home)查看是否已经完成实名
认证。
l 阿里云账户余额大于 100元。您可以登录阿里云控制台,并前往账户总览页面
(https://expense.console.aliyun.com/#/account/home)查看账户余额。
l 开通以下服务:
ᅳ 数据总线 DataHub
ᅳ E-MapReduce EMR
ᅳ DataWorks
ᅳ 大数据计算服务 MaxCompute
文档版本:20200820 2