Apache Flink

第05讲:Flink SQL & Table 编程和案例

*爱你&永不变心* 提交于 2020-05-06 00:17:17
我们在第 02 课时中使用 Flink Table & SQL 的 API 实现了最简单的 WordCount 程序。在这一课时中,将分别从 Flink Table & SQL 的背景和编程模型、常见的 API、算子和内置函数等对 Flink Table & SQL 做一个详细的讲解和概括,最后模拟了一个实际业务场景使用 Flink Table & SQL 开发。 Flink Table & SQL 概述 背景 我们在前面的课时中讲过 Flink 的分层模型,Flink 自身提供了不同级别的抽象来支持我们开发流式或者批量处理程序,下图描述了 Flink 支持的 4 种不同级别的抽象。 Table API 和 SQL 处于最顶端,是 Flink 提供的高级 API 操作。Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。 我们在第 04 课时中提到过,Flink 在编程模型上提供了 DataStream 和 DataSet 两套 API,并没有做到事实上的批流统一,因为用户和开发者还是开发了两套代码。正是因为 Flink Table & SQL 的加入,可以说 Flink 在某种程度上做到了事实上的批流一体。 原理 你之前可能都了解过 Hive,在离线计算场景下 Hive 几乎扛起了离线数据处理的半壁江山

应用安全

橙三吉。 提交于 2020-05-04 05:47:59
SSV-97074 Date 2018 类型 前台任意密码修改 影响范围 前置条件 CVE-2018-20129 Date 2018 类型 前台文件上传 影响范围 前置条件 (1)前台登录 (2)/member/article_add.php可访问 SSV-97087 Date 2018 类型 越权 影响范围 前置条件 (1)有前台登录账号 CVE-2018-9175 Date 2018 类型 影响范围 前置条件 (1)可登录后台 /member/reg_new.php SQL 注入漏洞 /member/buy_action.php SQL 注入漏洞 /member/buy_action.php SQL 注入漏洞 plus/guestbook.php 注入漏洞 /plus/recommend.php SQL 注入漏洞 /tag.php SQL 注入漏洞 /plus/infosearch.php SQL 注入漏洞 /plus/feedback_js.php SQL 注入漏洞 /member/mtypes.php SQL 注入漏洞 /plus/flink_add.php SQL 注入漏洞 member/ajax_membergroup.php SQL 注入漏洞 plus\feedback.php SQL 注入漏洞 plus/search.php SQL 注入漏洞 include

如何评估一项技术是否值得长期投入

眉间皱痕 提交于 2020-05-01 12:31:59
“每个人的时间都是有限的,在有限的时间里选择一项值得投入的技术会变得尤为重要。” 笔者从 2008 年开始工作到现在也有 12 个年头了,一路走来都在和数据打交道,做过很多大数据底层框架内核的开发(Hadoop,Pig,Hive,Tez,Spark),也做过多年上层数据计算框架(Livy, Zeppelin)以及数据应用开发,包括数据处理,数据分析以及机器学习。现在是 Apache Member 以及多个 Apache 项目的 PMC 。2018 年加入阿里巴巴实时计算团队专注在 Flink 的研发。 今天我想结合自己过去的职业经历来聊聊如何评估一项技术是否值得学习。我一直在大数据这个圈子,从最初的 Hadoop 到后来的 Hadoop 生态项目 Pig,Hive,Tez,然后又到新一代的计算引擎 Spark ,再到最近在做的 Flink ,大数据计算引擎贯穿我的整个职业生涯。我个人来说是比较幸运的,在每个阶段都在做比较火的技术,当时更多的是凭着自己的兴趣和直觉在选择技术类型。现在回过头来看我觉得需要从下面 3 个大的纬度来评估一项技术是否值得学习。 1、技术深度 2、生态广度 3、进化能力 技术深度 技术深度是指这项技术的根基是否扎实,护城河是否够宽够深,是否很容易被其他技术所替代。通俗的来说就是这项技术是否解决了其他技术所不能解决的有重要价值的问题。这里有两个要点: 1

Flink 新场景:OLAP 引擎性能优化及应用案例

那年仲夏 提交于 2020-05-01 12:02:34
摘要:本文由阿里巴巴技术专家贺小令(晓令)分享,主要介绍 Apache Flink 新场景 OLAP 引擎,内容分为以下四部分: 背景介绍 Flink OLAP 引擎 案例介绍 未来计划 一、背景介绍 1.OLAP 及其分类 OLAP 是一种让用户可以用从不同视角方便快捷的分析数据的计算方法。主流的 OLAP 可以分为3类:多维 OLAP ( Multi-dimensional OLAP )、关系型 OLAP ( Relational OLAP ) 和混合 OLAP ( Hybrid OLAP ) 三大类。 (1)多维 OLAP ( MOLAP ) 传统的 OLAP 分析方式 数据存储在多维数据集中 (2)关系型 OLAP ( ROLAP ) 以关系数据库为核心,以关系型结构进行多维数据的表示 通过 SQL 的 where 条件以呈现传统 OLAP 的切片、切块功能 (3)混合 OLAP ( HOLAP ) 将 MOLAP 和 ROLPA 的优势结合起来,以获得更快的性能 以下将详细介绍每种分类的具体特征。 ■ 多维 OLAP ( MOLAP ) MOLAP 的典型代表是 Kylin 和 Druid。 MOLAP 处理流程 首先,对原始数据做数据预处理;然后,将预处理后的数据存至数据仓库,用户的请求通过 OLAP server 即可查询数据仓库中的数据。 MOLAP 的优点和缺点

Iceberg 在基于 Flink 的流式数据入库场景中的应用

这一生的挚爱 提交于 2020-04-30 16:42:17
本文以流式数据入库的场景为基础,介绍引入 Iceberg 作为落地格式和嵌入 Flink sink 的收益,并分析了当前可实现的框架及要点。 应用场景 流式数据入库,是大数据和数据湖的典型应用场景。上游的流式数据,如日志,或增量修改,通过数据总线,经过必要的处理后,汇聚并存储于数据湖,供下游的应用(如报表或者商业智能分析)使用。 上述的应用场景通常有如下的痛点,需要整个流程不断的优化: 支持流式数据写入 ,并保证端到端的不重不丢(即 exactly-once); 尽量减少中间环节 ,能支持更实时(甚至是 T+0)的读取或导出,给下游提供更实时更准确的基础数据; 支持 ACID ,避免脏读等错误发生; 支持修改已落地的数据 ,虽然大数据和数据湖长于处理静态的或者缓慢变化的数据,即读多写少的场景,但方便的修改功能可以提升用户体验,避免用户因为极少的修改,手动更换整个数据文件,甚至是重新导出; 支持修改表结构 ,如增加或者变更列;而且变更不要引起数据的重新组织。 引入 Iceberg 作为 Flink sink 为了解决上述痛点,我们引入了 Iceberg 作为数据落地的格式。Iceberg 支持 ACID 事务、修改和删除、独立于计算引擎、支持表结构和分区方式动态变更等特性,很好的满足我们的需求。 同时,为了支持流式数据的写入,我们引入 Flink 作为流式处理框架,并将

祝贺!两位 Apache Flink PMC 喜提 Apache Member

£可爱£侵袭症+ 提交于 2020-04-30 14:43:20
摘要:近期 Apache 软件基金会(以下简称 ASF )举行了一年一度的董事会选举会议,两位 Apache Flink PMC 当选为 2020 年 ASF 新成员,即 Apache Member。目前,国内(华人)近 30 位 Apache Member 中,有 3 位是 Apache Flink 的核心贡献者。他们热爱开源也为开源贡献,不仅积极参与社区与其他 PMC 成员共同规划、主导 Apache Flink 的发展,更活跃在多个开源项目,持续为开源社区做贡献。 随着越来越多的开发者参与 Flink 社区建设,Flink contributor、committer 等数量持续高速增长,贡献社区也必然能得到社区的反馈!如果你也热爱开源,想参与社区建设,不妨看看这篇文章:如何从小白成长为 Apache Committer? ▼ 以下为 Apache 官方博客的详细介绍 ▼ 文章来源 | 开源社、ACL Beijing 相关作者 | Apache 博客、孙金城(ASF Member) 引言 今年 ASF 董事会选情相当热烈,十六位候选人参选九个席次。结果去年的九席董事换了七位,二位董事 Craig Russell 和 Shane Curcuru 续任。另外,去年的董事会选举后不久,有三位董事辞职,递补了三位董事,而这三位递补董事,今年则未续任。 这几年 ASF

Kafka常见错误整理(不断更新中)

二次信任 提交于 2020-04-29 18:11:26
1、UnknownTopicOrPartitionException org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition 报错内容:分区数据不在 原因分析:producer向不存在的topic发送消息,用户可以检查topic是否存在 或者设置auto.create.topics.enable参数 2、LEADER_NOT_AVAILABLE WARN Error while fetching metadata with correlation id 0 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient 报错内容:leader不可用 原因分析:原因很多 topic正在被删除 正在进行leader选举 使用kafka-topics脚本检查leader信息 进而检查broker的存活情况 尝试重启解决 3、NotLeaderForPartitionException org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not

Extending the Yahoo! Streaming Benchmark

萝らか妹 提交于 2020-04-29 18:11:08
could accomplish with Flink back at Twitter. I had an application in mind that I knew I could make more efficient by a huge factor if I could use the stateful processing guarantees available in Flink so I set out to build a prototype to do exactly that. The end result of this was a new prototype system which computed a more accurate result than the previous one and also used less than 1% of the resources of the previous system. The better accuracy came from the fact that Flink provides exactly-once processing guarantees whereas the existing system only provided at-most-once. The efficiency

Flink实战| Flink+Redis实时防刷接口作弊

陌路散爱 提交于 2020-04-28 22:26:23
随着人口红利的慢慢削减,互联网产品的厮杀愈加激烈,大家开始看好下沉市场的潜力,拼多多,趣头条等厂商通过拉新奖励,购物优惠等政策率先抢占用户,壮大起来。其他各厂商也紧随其后,纷纷推出自己产品的极速版,如今日头条极速版,腾讯新闻极速版等,也通过拉新奖励,阅读奖励等政策来吸引用户。 对于这类APP,实时风控是必不可少的,一个比较常见的实时风控场景就是防刷接口作弊。刷接口是黑产的一种作弊手段,APP上的各种操作,一般都会对应后台的某个接口,用户操作APP数据就会通过接口上报到后台,但如果黑产通过破解获取到了APP的新增用户接口,那他们就能跳过登陆APP步骤直接调后台接口构造虚假数据牟利了。对于这类业务,我们可以通过Flink + Redis来实现实时防刷接口的功能。数据流图如下所示: 刷接口作弊一般是越过登陆APP操作,直接调Server端的接口发数据,这些用户在APP的上报日志里面就不存在,那我们可以通过Flink将APP实时上报上来的新增用户写入Redis中,然后Server端将接口上报上来的用户与Redis里的用户进行比对,如果不在Redis里面则判为刷接口用户。 对于这个需求,得要求实时计算引擎能达到毫秒级延迟,否则会造成用户的误判和影响用户体验。为此我们选择了Flink作为实时计算引擎。 主要代码逻辑如下: //配置flink运行环境 val env =

大数据开发实战系列之电信客服(1)

半腔热情 提交于 2020-04-27 20:10:14
大数据实战开发系列,以实战为主,辅以一些基础知识,关于电信客服,在网上也有很多的资料,这里我自然会去参考网上的资料,程序的整体设计是在今天开始的,老夫尽量在本周末钱结束这个电信客服的程序编写。因为我也是一个学习者,所以在程序编写过程中难免会存在问题,有问题还请大家指出,有则改之,无则加勉。大家共同进步。本教程适合接触大数据开发不久或者还没接触大数据开发,或者小萌新。老鸟就多提意见吧,我改。 博客原文地址: 大数据开发实战系列之电信客服(1) <!--more--> 项目背景 关于项目背景,我就照搬网上的了。通信运营商每时每刻会产生大量的通信数据,例如通话记录,短信记录,彩信记录,第三方服务资费等等繁多信息。数据量如此巨大,除了要满足用户的实时查询和展示之外,还需要定时定期的对已有数据进行离线的分析处理。例如,当日话单,月度话单,季度话单,年度话单,通话详情,通话记录等等+。我们以此为背景,寻找一个切入点,学习其中的方法论。当前我们的需求是:统计每天、每月以及每年的每个人的通话次数及时长。 项目架构 关于这个项目架构,网上的是用的 MapReduce , 老夫最近在看 Flink , 因此,我们把这个计算引擎换成 Flink 引擎。先看一下原来的系统架构: 再来看看我这边修改后的: 那我们现在就根据这个流程一步一步来走。 项目实现 项目平台搭建 关于大数据的一个平台搭建