自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 Java反射机制

在一个程序加载完类后,在堆内存的方法区内就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。可以通过这个对象看到对应类的内部结构,所以称之为反射。反射机制允许程序在执行期间借助于Refletion API获取任何类的内部信息,并能够直接操作任意对象的内部属性和方法。在 Object 类中定义了以下的方法,此方法将被所有子类继承:以上的方法返回值的类型是一个 Class 类,此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即可以通过对

2022-06-20 19:45:30 290 1

原创 Kafka3.0—生产调优

Kafka3.0—生产调优一、数据相关调优1.数据可靠性2.数据去重3.数据有序4.数据乱序二、分区和副本相关调优1.增加Kafka新节点2.减少Kafka节点3.增加分区4.手动调整分区副本存储三、消费者相关调优1.消费者再平衡四、吞吐量调优(重点)1.提高生产者的吞吐量2.增加分区3.提高消费者的吞吐量五、其他调优1.Leader Partition负载平衡(建议关闭)2.自动创建主题(建议关闭)一、数据相关调优1.数据可靠性参数名称说明acks=0生产者发送过来的数据,不需

2022-05-06 22:19:02 1191

原创 Kafka3.0学习—外部系统集成

Kafka3.0学习—外部系统集成一、集成Flume1.Flume生产者2.Flume消费者一、集成FlumeFlume经常和Kafka一起使用,即可以作为生产者将数据发送到Kafka中,也可以作为消费者从Kafka中获取数据。1.Flume生产者场景:使用Flume监控Linux某个文件夹下的文件,然后将监控到的数据发送到Kafka中。这里最主要的就是Flume的配置:# 1 组件定义a1.sources = r1a1.sinks = k1a1.channels = c1# 2

2022-05-05 15:07:02 1422

原创 Kafka3.0学习—生产者

Kafka3.0学习—生产者和消费者一、Kafka生产者1.生产者消息发送流程1.1 发送原理简单介绍1.2 RecordAccumulator理解1.3 NetworkClient理解1.4 发送原理再整理2.生产者重要参数列表3.异步发送API3.1 普通异步发送3.2 带回调函数的异步发送4.同步发送API5.生产者分区5.1 分区的好处5.2 生产者分区策略5.3 生产者自定义分区器6.生产经验6.1 提高吞吐量6.2 数据可靠性ack一、Kafka生产者1.生产者消息发送流程1.1 发送原理

2022-05-03 21:24:34 1846

原创 Kafka3.0学习—Kafka基础

Kafka3.0学习—Kafka简介一、Kafka简介1.Kafka定义2.发布/订阅3.点对点4.点对点模式和发布/订阅模式的区别5.Kafka应用场景5.1 缓冲/削峰5.2 解耦5.3 异步通信6.Kafka基础架构二、Kafka简单命令行操作1.Topic相关命令行操作1.1 相关命令参数1.2 命令参数使用2.生产者相关命令行操作2.1 相关命令参数2.2 发送消息到Kafka3.消费者相关命令行操作3.1 相关命令参数3.2 消费Kafka里的数据一、Kafka简介1.Kafka定义Kaf

2022-05-03 10:38:20 818 2

原创 Java中日期API相关知识复习

Java中日期API相关知识复习一、java.lang.System类二、 java.util.Date类1.构造器2.常用方法三、 SimpleDateFormat类1.日期格式化为字符串2.字符串转化为日期四、java.util.Calendar(日历)类1.创建方式2.常用方法一、java.lang.System类System类提供了public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适用于计

2022-04-25 22:28:34 443

原创 Java中String相关知识复习

Java中String相关知识一、字符串基本知识1.String对象的创建2.字符串的特性3.字符串相关方法4.String与基本数据类型的转换二、字符串相关的类1.StringBuffer类1.1 StringBuffer类介绍1.2 StringBuffer类创建1.3 StringBuffer类常用方法2.StringBuilder类2.1 StringBuilder类介绍3.String、StringBuffer和StringBuilder对比一、字符串基本知识1.String对象的创建直接创

2022-04-25 19:09:13 295

原创 Flink实时数仓项目—DWS层设计与实现

Flink实时数仓项目—DWS层设计与实现前言三、DWS层—地区主题表的实现1.地区主题需求2.地区主题表实体类的设计2.1 维度字段2.2 度量字段2.3 其他字段3.功能实现3.1 获取表环境3.2 DDL读取数据3.3 开窗分组聚合统计3.4 写入ClickHouse4.ClickHouse表的创建四、DWS层—关键词主题表的实现1.关键词主题需求2.分词说明3.实体类的创建4.功能实现4.1 IK分词器的使用4.2 自定义函数4.3 编写主程序5、ClickHouse表的创建前言前面使用Dat

2022-04-22 18:39:42 2304

原创 Flink实时数仓项目—DWS层设计与实现

Flink实时数仓项目—DWS层设计与实现前言一、需求梳理1.需求梳理2.DWS层定位二、DWS层—访客主题宽表的实现1.访客主题的需求2.访客主题宽表的设计3.实现思路4.代码实现三、DWS层—商品主题宽表的实现1.商品主题需求2.商品主题宽表的设计2.1 维度字段2.2 度量值2.3 其他字段3.商品主题宽表实体类4.功能实现前言在前面通过使用分流等方法,把数据拆分成了独立的Kafka Topic,接下来我们就要根据需求得出要计算哪些指标项。我们把指标以主题宽表的形式输出就是DWS层要做的事情。

2022-04-21 20:19:01 1787

原创 Flink实时数仓项目—DWD层设计与实现

Flink实时数仓项目—DWD层设计与实现前言一、功能四:支付宽表1.需求描述2.实现思路2.1 思路一2.2 思路二2.3 思路选择3.代码实现3.1 创建支付实体类3.2 创建支付宽表实体类3.3 主程序前言前面完成了三个功能,最后一个功能是支付宽表,与订单宽表有类似的地方。一、功能四:支付宽表1.需求描述业务数据库中的支付表的粒度是一整条订单,但是这里的需求中有计算某商品的支付情况,因此需要将支付表和订单宽表进行关联,方便后续对某商品的支付情况的统计。2.实现思路2.1 思路一因为

2022-04-19 19:18:56 1516

原创 Flink实时数仓项目—DWD层设计与实现

Flink实时数仓项目—DWD层设计与实现前言一、功能三:订单宽表1.需求描述2.需求分析3.思路分析与代码实现3.1 实体类的创建3.2 读取Kafka订单数据和订单明细数据3.3 双流Join—关联事实表3.4 关联维度表二、优化:关联维度表优化—旁路缓存1.旁路缓存选型2.Redis设计3.代码实现前言前面已经完成了两个功能,下面实现订单宽表的功能,比较复杂,所以单独列出来。一、功能三:订单宽表1.需求描述订单在电商中属于比较重要的分析对象,关于订单也有许多的维度统计需求,比如用户、地区

2022-04-19 16:42:27 386

原创 Flink实时数仓项目—DWD层设计与实现

Flink实时数仓项目—DWD层设计与实现前言一、DWM层设计1.设计思路2.DWS层需求梳理2.DWM层需求整理二、功能一:访客UV计算的设计与实现1.需求说明2.需求分析3.代码实现三、功能二:跳出明细计算1.需求说明2.需求分析3.代码实现前言在前面已经将日志数据进行了分流写入到了Kafka的不同主题,也已经将业务数据中的事实数据放到了Kafka,维度数据放到了HBase中,接下来要进行DWM层的设计。DWM 层的定位是什么,DWM 层主要服务 DWS,因为部分需求直接从 DWD 层到DWS

2022-04-15 17:22:12 1091

原创 Flink实时数仓项目—ODS&DWD&DIM层总结

Flink实时数仓项目—ODS&DWD&DIM层总结前言一、ODS层二、DWD&DIM层1.行为数据2.业务数据前言到这里已经完成了Flink实时数仓项目的ODS层、DWD层&DIM层的设计和实现了,进行一个简单的总结。一、ODS层需要掌握以下内容:项目的数据来源:行为数据,业务数据架构分析:实时数仓的项目架构Flink-CDC:        DataStream/Flink

2022-04-13 22:34:29 1259

原创 Flink实时数仓项目—ODS层业务数据到DWD层

Flink实时数仓项目—ODS层业务数据到DWD层前言一、ODS层业务数据处理1.ETL过滤空值数据2.实现动态分流功能二、功能实现1.ETL空值过滤2.维度数据存储的选择3.动态分流再分析2.1 思路一(Pass)2.2 思路二4.思路二实现4.1 配置表字段的确定4.2 TableProcess实体类的创建4.3 Flink-CDC处理配置表4.4 处理主流数据和广播数据前言前面已经将日志数据和业务数据采集到了Kafka中,Kafka中的ods_xx主题就作为了实时数仓的ODS层。同时,已经完成了

2022-04-13 19:52:14 1597

原创 Flink实时数仓项目—ODS层日志数据到DWD层

Flink实时数仓项目—ODS层日志数据到DWD层前言一、日志数据需要做的处理1.识别新老用户2.日志数据的处理3.发送数据到Kafka二、功能实现1.读取Kafka数据并转换数据格式2.识别新老用户3.日志数据分流4.分流后的数据写入Kafka对应主题前言前面已经将日志数据和业务数据采集到了Kafka中,Kafka中的ods_xx主题就作为了实时数仓的ODS层。行为日志分为三类,页面日志、启动日志和曝光日志,这三类日志的格式不一样,我们需要分别进行处理,然后将处理完的数据再写入到Kafka中,作为

2022-04-12 11:56:03 1240

原创 Flink实时数仓项目—业务数据采集

Flink实时数仓项目—业务数据采集前言一、采集工具选型二、Flink-CDC学习三、MySQL数据准备1.binlog的配置2.模拟生成数据前言前面完成了日志数据的采集,下面进行业务数据的采集。一、采集工具选型实时数仓相关采集工具的选型在这篇文章中有提到:Flink实时数仓各种CDC对比二、Flink-CDC学习业务数据采集选取了Flink-CDC,Flink-CDC的学习及使用在这里:Flink-CDC 2.0学习及使用三、MySQL数据准备前提条件:业务数据存放在MySQL中,首先

2022-04-10 22:26:40 2743 1

原创 Flink实时数仓项目—日志数据采集

Flink实时数仓项目—日志数据采集前言一、日志数据采集1.模拟日志生成器的使用2.使用流程3.创建日志采集springboot程序4.进行Nginx配置5.日志采集流程测试前言实时数仓项目的数据来源有两个,一个是用户行为日志数据,一个是业务数据库中的业务数据,我们需要对这两部分数据进行采集,先进行用户行为日志数据的采集。一、日志数据采集1.模拟日志生成器的使用因为日志数据是用户通过点击等操作产生的,所以没办法拿到真实的数据,这里使用模拟生成日志数据的方式来生成日志数据。主要流程:运行生成日

2022-04-10 18:15:38 3598

原创 Flink实时数仓项目—项目初了解

Flink实时数仓项目—项目初了解前言一、实时数仓分层介绍1.普通的实时计算与实时数仓比较2.实时电商数仓分层规划二、实时数仓需求概览1.离线计算和实时计算的比较2.实时需求种类2.1 日常统计报表或分析图中需要包含当日部分2.2 实时数据大屏监控2.3 数据预警或提示2.4 实时推荐系统三、数仓架构分析1.离线数仓架构2.实时数仓架构前言学习完了Flink1.13,拿个项目练练手。一、实时数仓分层介绍1.普通的实时计算与实时数仓比较普通的实时计算和实时数仓有什么区别?或者说实时数仓为什么要分

2022-04-10 16:25:32 3983

原创 Flink实时数仓CDC对比选型

实时数仓CDC对比选型实时数仓中数据同步需要选取一个CDC工具,这里对比几种CDC的特点。例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。Flink CDCMaxwellCanal断点续传有(通过checkpoint)有(保存在MySQL)有(保存在本地磁盘)数据初始化功能有(多库多表)有(单表)无SQL与数据条数关系无无一对一(炸开)封装格式自定义JSONJSON

2022-04-09 22:36:48 2177 1

原创 Flink-CDC 2.0学习

Flink-CDC 2.0前言一、CDC简介1.什么是CDC2.CDC的种类3.Flink-CDC开源地址二、Flink-CDC案例实操1.依赖导入2.DataStream方式编写代码3.StartupOptions参数3.1 initial3.2 earliest3.3 latest4.Flink SQL方式编写代码5.自定义反序列化器三、Flink-CDC 2.01. Flink-CDC 1.x存在的问题2. Flink-CDC 2.0的改进前言实时数仓项目用到了Flink-CDC,这里记录一下学

2022-04-09 15:04:42 3411 1

原创 Flume的TairDir Source重读问题

问题描述:在数仓项目中,使用Flume的TairDir Source监控日志文件,当文件更名之后会重新读取该文件造成重复原因分析:因为Flume的TairDir Souce是通过inode和file来唯一确定一个文件的,当文件的名称改变之后,就会重新读取这个文件,造成读取数据的重复。解决方案:方案一:使用不更名打印日志框架(logback),每天会新生成一个日志文件,文件后面会加上当天的日期信息,所以不会重复,例如file.log.2022-04-07…方案二:修改源码,让TairDi

2022-04-07 21:42:53 604

原创 HBase学习记录

HBase学习记录一、HBase简介1.HBase定义2.NoSQL数据库3.Hbase逻辑结构4.Hbase物理结构5.Hbase的数据模型6.HBase架构(不完整版)二、HBase安装部署1.Zookeeper安装部署2.Hadoop安装部署3.HBase安装部署4.HBase启动停止5.HBase高可用三、HBase Shell操作1.namespace的操作一、HBase简介1.HBase定义HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。2.NoSQL数据库NoS

2022-04-07 15:53:40 1317

原创 10、刷牛客网SQL题(四)

SQL题题目来源一、SQL1(简单)1.题目内容2.思路分析3.语句实现二、SQL2(简单)1.题目内容2.思路分析3.语句实现题目来源例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。牛客网SQL大厂真题——某宝店铺分析(电扇模式)一、SQL1(简单)1.题目内容描述11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。已知产品情况表product_tb如下(其中,ite

2022-04-04 12:59:04 2303

原创 9、刷牛客网SQL题(三)

SQL题题目来源一、SQL1(简单)1.题目内容2.思路分析3.语句实现题目来源牛客网SQL大厂真题——电商场景(某东商城)一、SQL1(简单)1.题目内容描述现有订单总表tb_order_overall场景逻辑说明:用户将购物车中多件商品一起下单时,订单总表会生成一个订单(但此时未付款,status-订单状态为0,表示待付款);当用户支付完成时,在订单总表修改对应订单记录的status-订单状态为1,表示已付款;若用户退货退款,在订单总表生成一条交易总金额为负值的记录(表示退款金额

2022-03-29 11:49:39 1965

原创 8、刷牛客网SQL题(二)

SQL题题目来源一、SQL1(简单)1.题目内容2.思路分析3.语句实现一、SQL2(中等)1.题目内容2.思路分析3.语句实现题目来源牛客网SQL大厂面试题——用户增长场景(某度信息流)一、SQL1(简单)1.题目内容描述用户行为日志表tb_user_log场景逻辑说明:artical_id-文章ID代表用户浏览的文章的ID,artical_id-文章ID为0表示用户在非文章内容页(比如App内的列表页、活动页等)。问题:统计2021年11月每天的人均浏览文章时长(秒数),结果保留1

2022-03-25 14:44:59 1129

原创 刷SQL题用到的一些函数

刷SQL题用到的一些函数前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterw

2022-03-22 22:12:26 2913

原创 7、刷牛客网SQL题(一)

SQL题题目来源一、SQL11、题目内容2、思路分析3、代码实现题目来源牛客网SQL大厂面试题——某音短视频一、SQL11、题目内容描述用户-视频互动表tb_user_video_log短视频信息表tb_video_info问题:计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序注:视频完播率是指完成播放次数占总播放次数的比例。简单起见,结束观看时间与开始播放时间的差>=视频时长时,视为完成播放。2、思路分析首先看清题目要求,有以下几个点

2022-03-22 21:56:46 1194

原创 6、刷sql题第6~9天

第六天题目内容:表:Trips表:Users取消率 的计算方式如下:(被司机或乘客取消的非禁止用户生成的订单数量) / (非禁止用户生成的订单总数)。写一段 SQL 语句查出 “2013-10-01” 至 “2013-10-03” 期间非禁止用户(乘客和司机都必须未被禁止)的取消率。非禁止用户即 banned 为 No 的用户,禁止用户即 banned 为 Yes 的用户。返回结果表中的数据可以按任意顺序组织。其中取消率 Cancellation Rate 需要四舍五入保留 两位小数 。查

2022-03-19 13:49:48 357

原创 5、刷SQL题第五天

题目内容:表: Weather编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。返回结果 不要求顺序 。查询结果格式如下例。示例 1:我的思路:要查找与之前(昨天的)日期相比温度更高的所有日期的id。我直接想到了,把前一天的数据拿到当前行,然后比较一下即可,但是题目中并没有说给出的数据的日期是有序的,所以我想先排序,然后再拿数据;还有一点是没有说时间是连续的,有可能中间跳了日期,所以要把上一行的日期拿到做差等于1。sql语句如下:select

2022-03-19 12:27:25 182

原创 4、刷sql题第四天

题目内容:表: Employee表: Department编写SQL查询以查找每个部门中薪资最高的员工。按 任意顺序 返回结果表。查询结果格式如下例所示。示例 1:我的思路:看到题目内容,求每个部门中薪资最高的员工,很明显是分组TopN的问题,开窗+rank即可。代码如下:select t3.name Department, t2.name Employee, t2.salary Salaryfrom( select name,

2022-03-17 12:12:22 126

原创 3、刷sql第三天

题目内容:表:Employee编写一个SQL查询来查找收入比经理高的员工。以 任意顺序 返回结果表。查询结果格式如下所示。我的思路:要查询收入比经理高的员工,如果只查询一次表的话没办法同时拿到员工和对应经理的工资,所以应该查询两次这张表,然后用员工的id和经理的id做inner join内连接,然后where过滤即可。sql语句如下:select t1.name Employeefrom( select id, name,

2022-03-16 12:51:03 145

原创 2、刷sql题第二天

题目来源:力扣:数据库180题题目内容:表:Logs编写一个 SQL 查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示:示例 1:我的思路:题目要求解至少连续出现三次的数字,一看到题目,我就想到了窗口函数,可以获取前n行和后n行的数据,当然,这里获取前1行和后1行即可,只要这三行数据相等,就取Num,然后对Num去重即得结果,sql语句如下:select distinct(Num) ConsecutiveNums

2022-03-15 19:06:12 940

原创 11、Flink里的ProcessFunction API(底层API)

Flink里的ProcessFunction API(底层API)前言一、KeyedProcessFunction1.processElement2.onTimer3.时间服务和定时器4.测试代码5.使用案例二、侧输出流(SideOutput)前言       之前学习过的转换算子 没有办法访问事件的时间戳信息和水位线信息,但是某些情况下,却又需要访问到这些信息。例如MapFunction这样的map转换算子就无法访问时间戳或者当前

2022-03-15 11:51:10 464

原创 1、刷sql题第一天

题目来源:力扣:数据库176题题目内容:Employee 表:编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。查询结果如下例所示。示例 1:示例 2:我的思路:求第二高的数,瞬间就想到了开窗函数,三种开窗函数:使用rank()开窗,按salary降序,筛选出排序为2的数据,注意,如果总共只有一条数据或者没有排序为2的数据,那筛选出来的数据的总条数为0,所以使用if判断count(*)是否为0,然后分别输出

2022-03-14 22:34:53 3440

原创 7、Flink中的状态

Flink中的状态一、Flink中的状态1、算子状态1.2 算子状态数据结构一、Flink中的状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态。可以认为状态就是一个本地变量,可以被任务的业务逻辑访问。Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑。在Flink中,状态始终与特定算子相关联为了使运行时的Flink了解算子的状态,算子需要预先注册其状态总的来说,有两种类型的状态:算子状态(Operator St

2022-03-14 16:40:03 7106 2

原创 10、Flink的运行架构

Flink的运行架构一、Flink的架构二、Flink运行时的组件1.作业管理器(JobManager)2.任务管理器(TaskManager)3.资源管理器(ResourceManager)4.分发器(Dispatcher)三、Flink任务提交流程四、Flink任务调度原理一、Flink的架构Flink运行时由两种类型的进程组成:一个JobManager和一个或者多个TaskManager,采用了典型的Master-Slave架构,如下图:作业管理器JobManager只负责调度,不负责运行。

2022-03-12 18:46:24 2950

原创 6、Flink的时间语义和Wartermark

Flink的时间语义和Wartermark一、Flink中的时间语义1.三种时间语义1.1 Event Time1.2Ingestion Time1.3Processing Time1.4总结2.EventTime 的引入二、Watermark1.产生原因2.Watermark的理解2.1有序流的Watermarker2.2乱序流的Watermarker2.3总结3.Watermark的传递4.Watermark的引入4.1 乱序数据Watermark的引入4.2 有序数据Watermark的引入5.详解A

2022-03-11 11:49:53 2565

原创 5、Flink中的Window

Flink中的Window一、Window1.Window概述2.Window类型2.1滚动窗口(Tumbling Windows)2.2滑动窗口(Sliding Windows)2.3会话窗口(Session Windows)二、Window API1.TimeWindow2.CountWindow3.Window Fcuntion3.1 增量聚合函数3.2全窗口聚合函数3.3 计数窗口实例4.其他可选API一、Window1.Window概述    &nbs

2022-03-10 13:25:31 3068

原创 4、Flink里的UDF函数

Flink里的UDF函数一、函数类(Function Classes)二、富函数(Rich Functions)一、函数类(Function Classes)Flink暴露了所有udf函数的接口(实现方式为接口或者抽象类)。例如使用Map要实现MapFunction,使用Filter要实现FilterFunction,使用Process要实现ProcessFunction等等。以Filter为例: //方式一,自定义外部类实现FilterFunction DataStream<Stri

2022-03-09 12:24:28 1156

原创 3、Flink支持的数据类型

Flink支持的数据类型前言一、基础数据类型二、Java和Scale元组(Tuples)三、Scala样例类(case class)四、Java简单对象(POJOs)五、其它前言Flink流应用程序处理的是以数据对象表示的事件流。所以在Flink内部,我们需要能够处理这些对象。它们需要被序列化和反序列化,以便通过网络传送它们;或者从状态后端、检查点和保存点读取它们。为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型。Flink使用类型信息的概念来表示数据类型,并为每个数据类型生成特定的

2022-03-09 10:22:54 975

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除