大数据
文章平均质量分 95
大数据
迷雾总会解
我来,我见,我征服!
展开
-
Kudu-集群管理、基架感知、透明分层存储管理、性能优化
Kudu在安装时默认就安装了命令行工具,只需要执行Kudu命令就能看到所有的命令分组:一共有14个分组,组下面才是具体的命令,分组如下:执行kudu命令组就可以列出下面的子命令:Kudu提供了丰富的命令行工具方便用户管理集群,这里选择一些常见且命令做一下介绍。(1)kudu cluster举例:(2)kudu master举例:(3)kudu tserver举例:(4)kudu table举例:(5)kudu tablet举例:(6)kudu perf举例:Kudu Web界面WebUI端口原创 2023-07-11 18:06:04 · 1693 阅读 · 0 评论 -
Kudu-客户端API编程、生态整合(Spark、Flink、Impala)
Kudu提供了主流语言客户端API,核心类、方法是一致的,我们首先简要盘点下核心的这些类以便于我们写代码。(1)Kudu client(2)Schema表示表结构,主要是column的集合。该类提供了一些工具方法用于查询操作。(3)ColumnSchema表示一column,使用builder构建。(4)CreateTableOptionsBuilder模式类,用于创建表。(5)KuduTable表示集群上的一张表。含有当前表结构信息,隶属于特定AsyncKuduClient。(6)Session(7)In原创 2023-07-11 18:04:19 · 1125 阅读 · 0 评论 -
Kudu-基本架构、模式设计、Docker部署
Kudu是一个分布式列式存储引擎/系统,由Cloudera开源后捐献给Apache基金会很快成为顶级项目。用于对大规模数据快速读写的同时进行快速分析。官网:https://kudu.apache.org/Kudu运行在一般的商用硬件上,支持水平扩展和高可用,集HDFS的顺序读和HBase的随机读于一身,同时具备高性能的随机写,以及很强大的可用性(单行事务,一致性协议),支持与Impala/spark计算引擎。原创 2023-07-11 18:02:18 · 1949 阅读 · 0 评论 -
时间的标准与格式
打开你电脑上的日期时间设置,你会发现有的的国家采。这又是一个标准问题,当前的情况是,各个国家有符合本地习惯的日期时间格式标准,同时国际上也有诸多日期时间格式标准,比如 ISO 8601 和RFC3339 等。国际标准 ISO 8601,是国际标准化组织的日期和时间的表示方法和我们之前提过的UTC 不同,UTC 是一种时间标准,而 ISO 8601 是一种标准的时间格式,大多数的编程语言都支持。三是通过固定频率的震动,最早是伽利略通过教堂的吊灯发现了摆的等时性,也就是摆角较小时,吊灯摆动一次的时间是相同的。原创 2023-07-06 22:12:34 · 1632 阅读 · 0 评论 -
InfluxDB-FLUX查询优化、使用 InfluxDB 搭建报警系统
监控其实每隔一段时间对数据计算一下。比如,我有一个一氧化碳浓度传感器, 每 1分钟我就算一下这 1 分钟内室内一氧化碳浓度的平均值。将这个结果跟一个写死的标准值做比较,如果超过了就报警。这就是监控的基本逻辑。所以,InfluxDB 中的监控其实也是一个 FLUX 脚本写的定时任务。只不过,不管是在HTTP API 还是在Web UI 上,InfluxDB 都把它和定时任务分离区别对待了。原创 2023-07-06 22:12:55 · 2779 阅读 · 0 评论 -
InfluxDB-使用 InfluxDB 模板、定时任务、仪表盘、服务进程参数、迁移数据
InfluxDB 模板是一份 yaml 风格的配置文件。它包含了一套完整的仪表盘、Telegraf 配置和报警配置。InfluxDB 模板力图保证开箱即用,把 yaml 文件下载下来,往 InfluxDB 里一导,从数据采集一直到数据监控报警就全部为你创建好。InfluxDB 官方在 github 上收录了一批模板。开发前可以在这里逛一逛,看有没有可以直接拿来用的。原创 2023-07-06 16:40:46 · 2289 阅读 · 0 评论 -
InfluxDB-与IndluxDB进行交互、InfluxDB命令行工具、JAVA操作InfluxDB
你常见的认证方式可能是将用户名和密码放到 post 请求的请求体中,再发送给服务端进行认证。不过我们刚才并没有在请求体里放用户名和密码,而是配置了一个叫Basic auth 认证的东西。这个功能叫做 http 基本认证,是http 协议的一部分。基本认证的默认实现是:把用户名和密码用英文冒号拼起来,也就成了 tony:11111111再将拼起来的字符串用 Base64 算法编码。( tony:11111111 的 Base64 编码为dG9ueToxMTExMTExMQ==)原创 2023-07-06 16:40:11 · 2936 阅读 · 0 评论 -
InfluxDB-FLUX语法介绍以及查询InfluxDB
Flux 是一种函数式的数据脚本语言,它旨在将查询、处理、分析和操作数据统一为一种语法。想要从概念上理解 FLUX,你可以想想水处理的过程。我们从源头把水抽取出来,然后按照我们的用水需求,在管道上进行一系列的处理修改(去除沉积物,净化)等,最终以消耗品的方式输送到我们的目的地(饮水机、灌溉等)。注意:InfluxData 公司对 FLUX 语言构想并不是仅仅让它作为 InfluxDB 的特定查询语言,而是希望它像 SQL 一样,成为一种标准。原创 2023-07-06 16:34:45 · 9144 阅读 · 0 评论 -
InfluxDB-简介、理论原理介绍以及InfluxDB入门操作
InfluxDB 是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执行结果>xxx,就立刻触发报警。原创 2023-07-03 17:08:04 · 40340 阅读 · 0 评论 -
Telegraf介绍和使用(安装、使用、内部数据结构-InfluxDB行协议、配置、架构、Glob的使用、插件的集成和实现、集合Prometheus)
Telegraf是一个基于插件的开源指标采集工具。本身是为InfluxDB(一款时序数据库)量身打造的数据收集器,但是它过于优秀,能够将抓取的数据写到很多地方,尤其在时序数据库领域,很多时序数据库都能够与它配合使用。通常,它每隔一段时间抓取一批指标数据(比如机器的CPU使用情况,磁盘的IO,网络情况,MySQL服务端的的会话数等等)并将他们发送到时序数据库、消息队列中或者自定义导出到某个地方。供下游的应用处理(比如报警)。Telegraf也能够对外提供一个服务,等待客户端推送数据。原创 2023-07-01 23:44:58 · 20519 阅读 · 3 评论 -
数据湖Iceberg介绍和使用(集成Hive、SparkSQL、FlinkSQL)
为了解决数据存储和计算引擎之间的适配的问题,Netflix开发了Iceberg,2018年11月16日进入Apache孵化器,2020 年5月19日从孵化器毕业,成为Apache的顶级项目。Iceberg是一个面向海量数据分析场景的开放表格式(Table Format)。表格式(Table Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框架(Flink,Spark…)之下,数据文件之上。大数据领域发展至今已经经历了相当长时间的发展和探索,虽然大数据技术的出现和迭代降低了用户处理海量数据的原创 2023-07-01 10:51:27 · 6083 阅读 · 1 评论 -
火山模型和优化(向量化执行、编译执行)
早期数据库受限于硬件水平,IO、内存和CPU资源都非常昂贵,所以大多数数据库的执行器都采用的是传统的火山模型(经典的Volcano 模型)。火山模型又称 Volcano Model 或者 Pipeline Model。该计算模型将关系代数中每一种操作抽象为一个 Operator,将整个 SQL 构建成一个 Operator 树,从根节点到叶子结点自上而下地递归调用 next() 函数。调用子节点Operator的next() 接口获取一行数据(tuple);原创 2023-06-23 19:55:26 · 2184 阅读 · 0 评论 -
Doris-07-索引的详细介绍(前缀索引、Ordinal索引、Zone Map索引、Bitmap索引、Bloom Filter索引、NGram BloomFilter索引、倒排索引)
Apache Doris 存储引擎采用类似LSM树的结构提供快速的数据写入支持。进行数据导入时,数据会先写入 Tablet 对应的 MemTable 中,当 MemTable 写满之后,会将 MemTable 里的数据刷写(Flush)到磁盘,生成一个个不超过 256MB 的不可变的 Segment 文件。MemTable 采用SkipList的数据结构,将数据暂时保存在内存中,SkipList 会按照 Key 对数据行进行排序,因此,刷写到磁盘上的 Segment 文件也是按 Key 排序的。原创 2023-06-23 19:47:07 · 5697 阅读 · 0 评论 -
Doris-06-监控、报警以及Doris的优化
过去 Apache Doris 的 SQL 执行引擎是基于行式内存格式以及基于传统的火山模型进行设计的,在进行 SQL 算子与函数运算时存在非必要的开销,导致 Apache Doris 执行引擎的效率受限,并不适应现代 CPU 的体系结构。向量化执行引擎的目标是替换 Apache Doris 当前的行式 SQL 执行引擎,充分释放现代 CPU 的计算能力,突破在 SQL 执行引擎上的性能限制,发挥出极致的性能表现。所以在建表时,将对应的列设置为 NULL 通常会影响向量化执行引擎的性能。原创 2023-06-23 19:40:32 · 1781 阅读 · 0 评论 -
Doris-05-集成Spark、Flink、Datax,以及数据湖分析(JDBC、ODBC、ES、Hive、多源数据目录Catalog)
准备表和数据:Spark 读写 DorisSpark Doris Connector 可以支持通过 Spark 读取 Doris 中存储的数据,也支持通过Spark写入数据到Doris。代码库地址:https://github.com/apache/incubator-doris-spark-connector创建 maven 工程,编写 pom.xml 文件:使用 Spark Doris ConnectorSpark Doris Connector 可以支持通过 Spark 读取 Doris 中存原创 2023-06-23 19:38:20 · 2323 阅读 · 0 评论 -
Doris-04-数据导入和导出&数据备份和恢复
导入(Load)功能就是将用户的原始数据导入到 Doris 中。导入成功后,用户即可通过Mysql 客户端查询数据。为适配不同的数据导入需求,Doris 系统提供了 6 种不同的导入方式。每种导入方式支持不同的数据源,存在不同的使用方式(异步,同步)。所有导入方式都支持 csv 数据格式。其中 Broker load 还支持 parquet 和 orc 数据格式。(1)适用场景源数据在 Broker 可以访问的存储系统中,如 HDFS。数据量在几十到百 GB 级别。(2)基本原理用户在提交导入任务后,FE原创 2023-06-23 19:36:33 · 3892 阅读 · 0 评论 -
Doris-03-Doris的查询(Join查询、去重)
HLL 是基于 HyperLogLog 算法的工程实现,用于保存 HyperLogLog 计算过程的中间结果,它只能作为表的 value 列类型、通过聚合来不断的减少数据量,以此来实现加快查询的目的,基于它得到的是一个估算结果,误差大概在1%左右,hll 列是通过其它列或者导入数据里面的数据生成的,导入的时候通过 hll_hash 函数来指定数据中哪一列用于生成 hll 列,它常用于替代 count distinct,通过结合 rollup 在业务上用于快速计算uv等。如果是多分区表,则会有多个。原创 2023-06-23 19:28:20 · 3606 阅读 · 0 评论 -
Doris-02-数据表的操作(建表、数据模型Aggregate-Uniq-Duplicate、动态分区、临时分区、Rollup、物化视图等)
以 AGGREGATE KEY 数据模型为例进行说明。更多数据模型参阅 Doris 数据模型。列的基本类型,可以通过在 mysql-client 中执行 HELP CREATE TABLE;查看。AGGREGATE KEY 数据模型中,所有没有指定聚合方式(SUM、REPLACE、MAX、MIN)的列视为 Key 列。而其余则为 Value 列。Key 列必须在所有 Value 列之前。尽量选择整型类型。因为整型类型的计算和查找比较效率远高于字符串。原创 2023-06-23 19:24:10 · 1715 阅读 · 0 评论 -
Doris-01-Doris的简介和安装
Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台,单一业务最大可达到上百 TB。Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。原创 2023-06-23 19:19:42 · 1566 阅读 · 0 评论 -
Druid的介绍、使用和原理架构(数据摄取、数据查询)
Druid是MetaMarket公司研发的一款针对海量数据进行高性能实时分析的OLAP引擎(包含存储引擎和分析引擎当前已经捐献给Apache基金会。低延迟交互式查询:Druid提供低延迟实时数据摄取(入库),并采用预聚合、列式存储、位图索引 等手段使得海量数据分析能够亚秒级响应。高可用性( High Available ):Druid 使用 HDFS/S3 作为 Deep Storage,Segment 会在多个Historical 节点上进行加载;摄取数据时也可以多副本摄取,保证数据可用性和容错性。原创 2023-06-22 21:43:18 · 7431 阅读 · 0 评论 -
Kylin的介绍、使用和原理架构(Kylin3.0和Kylin4.0,Cube,去重原理,性能优化,MDX For Kylin,BI工具集成)
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。在Apache Kylin的现有实现中,Cube的每个Segment都会创建独立的字典,这种方式会导致相同数据在不同Segment字典中被映射成不同的值,这会导致最终的去重结果出错。原创 2023-06-22 21:28:33 · 4226 阅读 · 0 评论 -
Impala的介绍、使用和原理架构
impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,impala是参照谷歌的新三篇论文(Caffeine–网络搜索引擎、Pregel–分布式图计算、Dremel–交互式分析工具)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。原创 2023-06-22 21:10:37 · 5060 阅读 · 0 评论 -
Presto的介绍、使用和原理架构
Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。Presto 本身并不存储数据,,但是可以接入多种数据源,并且支持跨数据源的级联查询,而且基于内存运算,速度很快,实时性高。注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是MySQL、Oracle的代替品,也不能用来处理在线事务 (OLTP)。适合:PB级海量数据复杂分析,交互式SQL。原创 2023-06-15 17:32:55 · 8632 阅读 · 1 评论 -
元数据管理-Atlas的介绍和使用(集成Hive、Solr、Kafka、Kerberos)
概述介绍架构发展架构原理类型系统介绍类型hive_table类型介绍DataSet类型定义Asset类型定义Referenceable类型定义Process类型定义Entities(实体)Attributes(属性)安装安装环境准备安装Solr-7.7.3安装Atlas2.1.0Atlas配置Atlas集成HbaseAtlas集成SolrAtlas集成KafkaAtlas Server配置Kerberos相关配置Atlas集成HiveAtlas启动Atlas使用Hive元数据初次导入Hive元数据增量同步。原创 2023-06-15 15:10:44 · 2649 阅读 · 0 评论 -
权限管理-Ranger的介绍和使用(集成Hive)
Apache Ranger是一个Hadoop平台上的全方位数据安全管理框架,它可以为整个Hadoop生态系统提供全面的安全管理。随着企业业务的拓展,企业可能在多用户环境中运行多个工作任务,这就需要一个可以对安全策略进行集中管理,配置和监控用户访问的框架。Ranger由此产生!Ranger的官网:https://ranger.apache.org/RangerUsersync作为Ranger提供的一个管理模块,可以将Linux机器上的用户和组信息同步到RangerAdmin的数据库中进行管理。原创 2023-06-15 14:44:36 · 6455 阅读 · 0 评论 -
用户认证-Kerberos的介绍和使用(Hadoop、Hive、数仓流程、Presto、Kylin集成配置)
Kerberos是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。(1)登录数据库本地登录(无需认证)远程登录(需进行主体认证,认证操作见下文)原创 2023-06-14 14:15:00 · 2440 阅读 · 0 评论 -
集群监控-Zabbix介绍和使用(集成Grafana)
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。原创 2023-06-14 09:59:18 · 3324 阅读 · 0 评论 -
可视化报表-Superset的介绍的使用
Apache Superset是一个开源的、现代的、轻量级BI分析工具,由Python语言为主,能够对接多种数据源、拥有丰富的图表展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。官网 :https://superset.apache.org/国内支持的镜像站 :阿里云:http://mirrors.aliyun.com/pypi/simple/、豆瓣:https://pypi.douban.com/simple/ 等开发语言:Python为主。原创 2023-06-13 15:46:50 · 3729 阅读 · 2 评论 -
全流程调度-Oozie的介绍和使用
workflow 是一组 actions 集合(例如Hadoop map/reduce作业,pig作业),它被安排在一个控制依赖项DAG(Direct Acyclic Graph)中。“控制依赖”从一个action到另一个action意味着第二个action不能运行,直到第一个action完成。Oozie Workflow 定义是用 hPDL 编写的(类似于JBOSS JBPM jPDL的XML过程定义语言)。Oozie Workflow actions 在远程系统(如Hadoop、Pig)中启动工作。原创 2023-06-13 12:01:21 · 2337 阅读 · 0 评论 -
全流程调度-DolphinScheduler的介绍和使用
Apache DolphinScheduler 是一个分布式、易扩展的可视化 DAG 工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。工作流要求:工作流需包含三个 Shell 类型的任务节点,分别是A,B,C。三个任务的依赖关系如下图所示:(1)创建工作流(2)配置任务节点节点A节点B节点C(3)配置任务节点的依赖关系配置依赖的关系的方式如下两种:直接对 DAG 图进行拖拽操作在节点设置中选择 “前置任务”(4)保存工作流定义。原创 2023-06-13 11:49:06 · 2323 阅读 · 0 评论 -
全流程调度-Azkaban介绍和使用
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。Azkaban WebServer需要根据Executor Server的运行状态信息,选择一个合适的Executor Server来运行WorkFlow,然后会将提交到队列中的WorkFlow调度到选定的Executor Server上运行。原创 2023-06-13 11:28:52 · 3003 阅读 · 0 评论 -
全流程调度-Airflow介绍和使用
Airflow是一个以编程方式编写,安排和监视工作流的平台。使用Airflow将工作流编写任务的有向无环图(DAG)。Airflow计划程序在遵循指定的依赖项,同时在一组工作线程上执行任务。丰富的命令实用程序使在DAG上执行复杂的调度变的轻而易举。丰富的用户界面使查看生产中正在运行的管道,监视进度以及需要时对问题进行故障排除变的容易。原创 2023-06-13 11:19:04 · 7985 阅读 · 0 评论 -
业务数据同步工具NiFi介绍和使用
一个易于使用,功能强大,可靠的处理和分发数据框架。主要用于数据的同步传输,支持灵活的数据格式转换,同时可以设置定时调度任务。主要用于离线同步。(1)NiFi登陆界面解读我们现在可以通过在画布中添加Processor来开始创建数据流。要执行此操作,请将处理器图标从屏幕左上方拖动到画布中间(图纸类背景)并将其放在那里。这将为我们提供一个对话框,允许我们选择要添加的处理器:提示:各个处理器的用途及配置在官网上都有介绍,大约提供了近300个常用处理器。原创 2023-06-03 17:24:52 · 2988 阅读 · 0 评论 -
业务数据同步工具介绍和使用(Sqoop、Datax、Canal、MaxWell、Flink CDC)
Sqoop : SQL-to-Hadoop(Apache已经终止Sqoop项目)用途:把关系型数据库的数据转移到HDFS(Hive、Hbase)(重点使用的场景);Hadoop中的数据转移到关系型数据库中。Sqoop是java语言开发的,底层使用mapreduce。需要注意的是,Sqoop主要使用的是Map,是数据块的转移,没有使用到reduce任务。Sqoop支持全量数据导入和增量数据导入(增量数据导入分两种,一是基于递增列的增量数据导入(Append方式)。二是基于时间列的增量数据导入(LastModi原创 2023-06-03 11:11:59 · 3872 阅读 · 0 评论 -
日志数据同步工具filebeat和logstash介绍和使用
官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。原创 2023-06-03 10:55:49 · 4045 阅读 · 0 评论 -
MDX&Mondrian介绍
MDX(Multidimensional Expressions)是多维数据库(OLAP 数据库)的查询语言。Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过java API以多维的方式对结果进行展示。它实现了MDX语言、XML解析、JOLAP规范。Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web项目集成。原创 2023-04-06 20:05:30 · 863 阅读 · 2 评论 -
去重方法-精确去重(Kylin的去重)
在 OLAP 数据分析领域,去重计数(count distinct)是非常常见的需求(这可以作为一个度量),根据去重结果的要求分为近似去重和精确去重(在Kylin中,可以自行选择)。原创 2023-04-06 19:51:20 · 750 阅读 · 0 评论 -
Flink-CEP复杂事件处理
在大数据分析领域,一大类需求就是诸如 PV、UV 这样的统计指标,我们往往可以直接写 SQL 搞定;对于比较复杂的业务逻辑,SQL 中可能没有对应功能的内置函数,那么我们也可以使用 DataStream API,利用状态编程来进行实现。不过在实际应用中,还有一类需求是要检测以特定顺序先后发生的一组事件,进行统计或做报警提示,这就比较麻烦了。例如,网站做用户管理,可能需要检测“连续登录失败”事件的发生,这是个组合事件,其实就是“登录失败”和“登录失败”的组合;电商网站可能需要检测用户“下单支付”行为,这也是组原创 2023-03-06 11:04:23 · 800 阅读 · 0 评论 -
Flink-Table API 和 SQL(基本API、流处理的表、时间属性和窗口、聚合查询、联结查询、函数、SQL客户端、连接到外部系统)
系统函数尽管庞大,也不可能涵盖所有的功能;如果有系统函数不支持的需求,我们就需要用自定义函数(User Defined Functions,UDF)来实现了。Flink 的 Table API 和 SQL 提供了多种自定义函数的接口,以抽象类的形式定义。标量函数(Scalar Functions):将输入的标量值转换成一个新的标量值;表函数(Table Functions):将标量值转换成一个或多个新的行数据,也就是扩展成一个表;聚合函数(Aggregate Functions)原创 2023-02-20 15:20:23 · 1294 阅读 · 0 评论 -
Flink-容错机制(检查点、状态一致性、端到端精确一次)
流式数据连续不断地到来,无休无止;所以流处理程序也是持续运行的,并没有一个明确的结束退出时间。因为各种硬件软件的原因,运行一段时间后程序可能异常退出、机器可能宕机如果我们只依赖一台机器来运行,就会使得任务的处理被迫中断。一个解决方案就是多台机器组成集群,以“分布式架构”来运行程序。这样不仅扩展了系统的并行处理能力,而且可以解决单点故障的问题,从而大大提高系统的稳定性和可用性。在分布式架构中,当某个节点出现故障,其他节点基本不受影响。这时只需要重启应用,恢复之前某个时间点的状态继续处理就可以了。这一切原创 2023-02-20 12:19:37 · 855 阅读 · 1 评论