Flink Table API & SQL编程指南(1)

Apache Flink提供了两种顶层的关系型API,分别为Table API和SQL,Flink通过Table API&SQL实现了批流统一。其中Table API是用于Scala和Java的语言集成查询API,它允许以非常直观的方式组合关系运算符(例如select,where和join)的查询。Flink SQL基于Apache Calcite 实现了标准的SQL,用户可以使用标准的SQL处理数据集。Table API和SQL与Flink的DataStream和DataSet API紧密集成在一起,用户可以实现相互转化,比如可以将DataStream或者DataSet注册为table进行操作数据。值得注意的是,Table API and SQL目前尚未完全完善,还在积极的开发中,所以并不是所有的算子操作都可以通过其实现。

阅读全文

一统江湖的数仓开发辅助神器--DBeaver

DBeaver是一个SQL客户端和数据库管理工具。对于关系数据库,它使用JDBC API通过JDBC驱动程序与数据库交互。对于其他数据库NoSQL,它使用专有数据库驱动程序。DBeaver支持非常丰富的数据库,可以说只有你想不到的,没有它做不到的,开箱即用的DBeaver支持80多种数据库产品,主要包括:

阅读全文

Hive的条件函数与日期函数全面汇总解析

Hive的开窗函数实战的文章中,主要介绍了Hive的分析函数的基本使用。本文是这篇文章的延续,涵盖了Hive所有的条件函数和日期函数,对于每个函数,本文都给出了具体的解释和使用案例,方便在工作中查阅。

阅读全文

Greenplum集群Master与Segment节点故障检测与恢复

Greenplum集群主要包括Master节点和Segment节点,Master节点称之为主节点,Segment节点称之为数据节点。Master节点与Segment节点都是有备份的,其中Master节点的备节点为Standby Master(不能够自动故障转移),Segment是通过Primary Segment与Mirror Segment进行容错的。通过本文你可以了解:

阅读全文

Flink DataSet API编程指南

Flink最大的亮点是实时处理部分,Flink认为批处理是流处理的特殊情况,可以通过一套引擎处理批量和流式数据,而Flink在未来也会重点投入更多的资源到批流融合中。我在Flink DataStream API编程指南中介绍了DataStream API的使用,在本文中将介绍Flink批处理计算的DataSet API的使用。通过本文你可以了解:

阅读全文

Flink DataStream API 中的多面手——Process Function详解

Flink的时间与watermarks详解这篇文章中,阐述了Flink的时间与水位线的相关内容。你可能不禁要发问,该如何访问时间戳和水位线呢?首先通过普通的DataStream API是无法访问的,需要借助Flink提供的一个底层的API——Process Function。Process Function不仅能够访问时间戳与水位线,而且还可以注册在将来的某个特定时间触发的计时器(timers)。除此之外,还可以将数据通过Side Outputs发送到多个输出流中。这样以来,可以实现数据分流的功能,同时也是处理迟到数据的一种方式。下面我们将从源码入手,结合具体的使用案例来说明该如何使用Process Function。

阅读全文