自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小坏说后端

我孤零零的写代码,成为了除了CRUD啥都不会,为了过上好生活拿我一月的饭钱买个服务器、想让别人成为我这样的CRUD的大老、微服务、架构、容器、资源、不在发愁如何学习了、网站:https://www.e404e.cn

  • 博客(163)
  • 收藏
  • 关注

原创 SpringCloud Alibaba完整使用

小白必学SpringClodAlibaba微服务技术组件搭建学不会就是我的锅AlibabaCloud微服务初级篇依赖认知1、SpringClodAlibaba版本依赖关系讲解2、SpringClodAlibaba官方网站3、SpringClodAlibaba Maven坐标4、SpringClodAlibaba Nacos注册中心5、SpringClodAlibaba Nacos配置中心6、SpringClodAlibaba SMS短信发送配置7、SpringClodAlibaba OSS

2019-10-29 11:15:19 114748 67

原创 数据仓库环境准备完整使用 (第四章)

DIM层数据源:kafka---topic_db(包含所有的业务表)过滤数据:过滤出所需要的维表数据过滤条件:在代码中给定十几张维表的表名问题:如果增加维表,需要修改代码-重新编译-打包-上传、重启任务优化1:不修改代码、只重启任务配置信息中保存需要的维表信息、配置信息只在程序启动的时候加载一次优化2:不修改代码、不只重启任务方向:让程序在启动的以后还可以获取配置信息中增加的内容具体实施:1) 定时任务:每隔一段时间加载一次配置信息将定时任务写在Open方法。

2022-12-21 11:08:26 988 4

原创 数据仓库概述与建模完整使用 (第三章)

如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。高性能:良好的数据模型能够帮助我们快速查询所需要的数据。

2022-12-14 16:41:26 806 1

原创 数据仓库电商业务简介完整使用 (第二章)

电商的业务流程可以以一个普通用户的浏览足迹为例进行说明,用户点开电商首页开始浏览,可能会通过分类查询也可能通过全文搜索寻找自己中意的商品,这些商品无疑都是存储在后台的管理系统中的。当用户寻找到自己中意的商品,可能会想要购买,将商品添加到购物车后发现需要登录,登录后对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据。订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成。

2022-12-12 17:52:03 899

原创 数据仓库概念完整使用 (第一章)

用户行为日志的内容,主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。目前主流的埋点方式,有代码埋点(前端/后端)、可视化埋点、全埋点等。代码埋点是通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的 OnClick 函数里面调用SDK提供的数据发送接口,来发送数据。可视化埋点。

2022-11-13 14:12:07 1033

原创 大数据完结正式步入项目阶段

争取30天搞完d第一个实时数仓项目。争取30天搞完d第二个实时数仓项目。

2022-11-09 16:15:53 560

原创 ClickHouse高级常见问题排查 完整使用 第十二章

(1)问题:使用分布式 ddl 执行命令 create table on cluster xxxx 某个节点上没有创建表,但是 client 返回正常,查看日志有如下报错。(1)问题:由于某个数据节点副本异常,导致两数据副本表不一致,某个数据副本缺少表,需要将两个数据副本调整一致。表结构创建后,clickhouse 会自动从其他副本同步该表数据,验证数据量是否一致即可。在缺少表的数据副本节点上创建缺少的表,创建为本地表,表结构可以在其他数据副本。(1)问题:某个数据副本异常无法启动,需要重新搭建副本。

2022-11-09 16:09:20 918

原创 ClickHouse高级MaterializeMySQL 引擎 完整使用 第十一章

MySQL 的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用 binlog 将数据写入到 ClickHouse。为了能够监听 binlog 事件,我们需要用到类似 canal 这样的第三方中间件,这无疑增加了系统的复杂度。

2022-11-08 20:35:31 282

原创 ClickHouse高级物化视图 完整使用 第十章

普通视图不保存数据,保存的仅仅是查询语句,查询的时候还是从原表读取数据,可以将普通视图理解为是个子查询。物化视图则是把查询的结果根据相应的引擎存入到了磁盘或内存中,对数据重新进行了组织,你可以理解物化视图是完全的一张新表。

2022-11-08 19:09:09 336

原创 ClickHouse高级数据一致性(重点)完整使用 第九章

查询 CK 手册发现,即便对数据一致性支持最好的 Mergetree,也只是保证最终一致性:我们在使用这类表引擎的时候,会出现短暂数据不一致的情况。在某些对一致性非常敏感的场景,通常有以下几种解决方案。

2022-11-08 17:52:39 1290

原创 ClickHouse高级 操作使用 第八章

CK的 join : 1 、原理:右表加载到内存、再去匹配 2 、为什么 join 不行、因为 1 3 、非要使用、怎么比较好:能过滤先过滤,特别是右表右表放小表特殊场景可以考虑使用字典表可以替换的话、尽量不要用 join ,比如用 in 实现。

2022-11-08 11:01:53 709

原创 ClickHouse 分片集群 操作使用 第七章

要解决数据水平切分的问题,需要引入分片的概念。通过分片把一份完整的数据进行切分,不同的分片分布到不同的节点上,再通过 Distributed 表引擎把数据拼接起来一同使用。,有点类似于 MyCat 之于 MySql,成为一种中间件,通过分布式逻辑表来写入、分发、路由来操作多台节点不同分片的分布式数据。不需要求改文件引用,因为已经使用集群建表了,如果改为引用 metrika-shard.xml 的话,副本虽然能够提高数据的可用性,降低丢失风险,但是每台服务器实际上必须容纳全量数据,对数据的。

2022-11-02 10:00:43 469

原创 ClickHouse 副本 操作使用 第六章

二、副本写入流程注:也可以不创建外部文件,直接在 config.xml 中指定(3)同步到 hadoop103 和 hadoop104 上(4)在 hadoop102 的/etc/clickhouse-server/config.xml 中增加分别在 hadoop102 和 hadoop103 上启动 ClickHouse 服务(6)在 hadoop102 和 hadoop103 上分别建表①hadoop102②hadoop103③参数解释第二个参数是副本名称,(8)在 hado

2022-10-31 17:08:04 365

原创 ClickHouse SQL 操作使用 第五章

ClickHouse 提供了 Delete 和 Update 的能力,这类操作被称为 Mutation 查询,它可以看。➢ 支持各种 JOIN,但是 JOIN 操作无法使用缓存,所以即使是两次相同的 JOIN 语句,“重”的原因主要是每次修改或者删除都会导致放弃目标数据的原有分区,重建新分区。虽然可以实现修改和删除,但是和一般的 OLTP 数据库不一样,所以尽量做批量的变更,不要进行频繁小数据的操作。,一般不会开放这样的功能给用户,由管理员完成。,同步执行的部分其实只是进行。直到触发分区合并的时候,

2022-10-31 11:26:15 254

原创 ClickHouse表引擎完整使用 第四章

写入后的某个时刻(大概 10-15 分钟后),ClickHouse 会自动执行合并操作(等不及也可以手动通过 optimize 执行),把临时分区的数据,合并到已有分区中。MergeTree 是以列文件+索引文件+表定义文件组成的,但是如果设定了分区那么这些文件就会保存到不同的分区目录中。多了一个去重的功能。设置主键的情况,很多处理会依照 order by 的字段进行处理(比如后面会讲的去重和汇总)。ClickHouse 中的主键,和其他数据库不太一样,它只提供了数据的一级索引,但是却不。

2022-10-28 15:57:35 1645

原创 ClickHouse数据类型完整使用 第三章

Float32 - floatFloat64 – double建议尽可能以整数形式存储数据。例如,将固定精度的数字转换为整数值,如时间用毫秒为单位表示,因为浮点型进行计算时可能引起四舍五入的误差。有三种声明:➢ Decimal32(s),相当于 Decimal(9-s,s),有效位数为 1~9➢ Decimal64(s),相当于 Decimal(18-s,s),有效位数为 1~18➢ Decimal128(s),相当于 Decimal(38-s,s),有效位数为 1~38字符串可以任意长度的。

2022-10-28 15:06:42 708

原创 ClickHouse安装完整使用 第二章

把 :: 的注释打开,这样的话才能让 ClickHouse 被除本机以外的服务器访问。日志文件路径:/var/log/clickhouse-server/clickhouse-server.log。将/2.资料/ClickHouse 下 4 个文件上传到 hadoop102 的。在这个文件中,有 ClickHouse 的一些默认路径配置,比较重要的。有时候上面配置完会被这个文件覆盖、这个也得配置一下。soft 软线程 当前生效的 配的话要比硬的小。

2022-10-28 14:51:16 1482

原创 ClickHouse 完整使用 第一章

通过类 LSM tree的结构,ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台compaction 时也是多个段 merge sort 后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力,即便在 HDD 上也有着优异的写入性能。但是当想查所有人的年龄时,需要不停的查找,或者全表扫描才行,遍历的很多数据都是不需要的。几乎覆盖了标准 SQL 的大部分语法,包括 DDL 和 DML,以及配套的各种函数,用户管理及权限管理,数据的备份与恢复。

2022-10-27 17:08:14 609

原创 Maxwell基本搭建 完整使用 (第二章)

(2)向 mysql 的 test_maxwell 库的 test 表插入一条数据,查看 maxwell 的控制台输出。(4)修改 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出。(5)删除 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出。Maxwell 是支持数据初始化的,可以通过修改 Maxwell 的元数据,来对 MySQL 的某张表。(3) 当数据全部初始化完成以后,Maxwell 的元数据会变化。

2022-10-26 17:03:10 1416

原创 MaxWell中基本使用原理 完整使用 (第一章)

Maxwell是由美国Zendesk开源,用Java编写的MySQL实时抓取软件。实时读取 MySQL二进制日志Binlog,并生成JSON格式的消息,作为生产者发送给Kafka, Kinesis、 RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。MaxWellMySQL的二进制日志可以说MySQL最重要的日志了,它记录了所有的DDL和DML(除 了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进 制日志是事务安全型的。

2022-10-26 17:02:39 418

原创 Flink中Table API和SQL 完整使用下 (第十一章)

Flink的SQL、Table的实操

2022-10-26 17:01:26 508

原创 Flink中Table API和SQL 完整使用中 (第十一章)

系统函数尽管庞大,也不可能涵盖所有的功能;如果有系统函数不支持的需求,我们就需要用自定义函数(User Defined Functions,UDF)来实现了。事实上,系统内置函数仍然在不断扩充,如果我们认为自己实现的自定义函数足够通用、应用非常广泛,也可以在项目跟踪工具JIRA上向Flink开发团队提出“议题”(issue),请求将新的函数添加到系统函数中。Flink的Table API和SQL提供了多种自定义函数的接口,以抽象类的形式定义。

2022-10-26 16:54:46 1284

原创 Flink中Table API和SQL 完整使用上 (第十一章)

在Flink提供的多层级API中,核心是DataStream API,这是我们开发流处理应用的基本途径;底层则是所谓的处理函数(process function),可以访问事件的时间信息、注册定时器、自定义状态,进行有状态的流处理。DataStream API和处理函数比较通用,有了这些API,理论上我们就可以实现所有场景的需求了。不过在企业实际应用中,往往会面对大量类似的处理逻辑,所以一般会将底层API包装成更加具体的应用级接口。怎样的接口风格最容易让大家接收呢?

2022-10-26 11:28:51 1676

原创 Flink中Flink CEP 完整使用 (第十二章)

如图12-1所示,输入是不同形状的事件流,我们可以定义一个匹配规则:在圆形后面紧跟着三角形。那么将这个规则应用到输入流上,就可以检测到三组匹配的复杂事件。它们构成了一个新的“复杂事件流”,流中的数据就变成了一组一组的复杂事件,每个数据都包含了一个圆形和一个三角形。接下来,我们就可以针对检测到的复杂事件,处理之后输出一个提示或报警信息了。所以,CEP是针对流处理而言的,分析的是低延迟、频繁产生的事件流。它的主要目的,就是在无界流中检测出特定的数据组合,让我们有机会掌握数据中重要的高阶特征。

2022-10-25 11:44:25 706 1

原创 Flink中容错机制 完整使用 (第十章)

Flink作为一个大数据分布式流处理框架,必须要考虑系统的容错性,主要就是发生故障之后的恢复。Flink容错机制的核心就是检查点,它通过巧妙的分布式快照算法保证了故障恢复后的一致性,并且尽可能地降低对处理性能的影响。本章中我们详细介绍了Flink检查点的原理、算法和配置,并且结合一致性理论与Flink-Kafka的实际互连系统,阐述了如何用Flink实现流处理应用的端到端exactly-once状态一致性。这既是Flink底层原理的深入,也与之前的状态管理、水位线机制有联系和相通之处;

2022-10-09 12:19:50 907

原创 Flink中状态编程 完整使用 (第九章)

在 Flink 中,状态始终是与特定算子相关联的;算子在使用状态前首先需要“注册”,其实就是告诉Flink当前上下文中定义状态的信息,这样运行时的 Flink 才能知道算子有哪些状态。状态的注册,主要是通过“状态描述器”(StateDescriptor)来实现的。状态描述器中最重要的内容,就是状态的名称(name)和类型(type)。我们知道Flink中的状态,可以认为是加了一些复杂操作的内存中的变量;

2022-10-09 11:50:09 956

原创 Flink多流转换 完整使用 (第八章)

多流转换是流处理在实际应用中常见的需求,主要包括分流和合流两大类,本章分别做了详细讲解。在Flink中,分流操作可以通过处理函数的侧输出流(side output)很容易地实现;而合流则提供不同层级的各种API。最基本的合流方式是联合(union)和连接(connect),两者的主要区别在于union可以对多条流进行合并,数据类型必须一致;而connect只能连接两条流,数据类型可以不同。事实上connect提供了最底层的处理函数(process function)接口。

2022-09-14 16:45:02 769 2

原创 Flink处理函数 完整使用 (第七章)

Flink拥有非常丰富的多层API,而底层的处理函数可以说是最为强大、最为灵活的一种。广义上来讲,处理函数也可以认为是DataStream API中的一部分,它的调用方式与其他转换算子完全一致。处理函数可以访问时间、状态,定义定时操作,它可以直接触及流处理最为本质的组成部分。所以处理函数不仅是我们处理复杂需求时兜底的“大招”,更是理解流处理本质的重要一环。在本章中,我们详细介绍了处理函数的功能和底层的结构,

2022-09-08 10:24:12 559

原创 Flink中的时间和窗口 完整使用 (第六章)

具体实现上,水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为当前水位线的时间戳了。每条数据后插入一个水位线一般来说,Flink内置的水位线生成器就可以满足应用需求了。不过有时我们的业务逻辑可能非常复杂,这时对水位线生成的逻辑也有更高的要求,我们就必须自定义实现水位线策略WatermarkStrategy了。...............

2022-08-22 13:09:37 347

原创 DataStream API(基础篇) 完整使用 (第五章)

大多数情况下,前面的数据源已经能够满足需要。但是凡事总有例外,如果遇到特殊情况,我们想要读取的数据源来自某个外部系统,而flink既没有预实现的方法、也没有提供连接器,又该怎么办呢?那就只好自定义实现SourceFunction了。接下来我们创建一个自定义的数据源,实现SourceFunction接口。主要重写两个关键方法:run()和cancel()。run() 方法:使用运行时上下文对象( SourceContext )向下游发送数据;..................

2022-08-09 16:26:30 1305 1

原创 Flink运行时架构 完整使用 (第四章)

要解答这个问题,我们需要先梳理一下其他框架分配任务、数据处理的过程。对于Spark而言,是把根据程序生成的DAG划分阶段(stage)、进而分配任务的。而对于Flink这样的流式引擎,其实没有划分stage的必要。因为数据是连续不断到来的,我们完全可以按照数据流图建立一个“流水线”,前一个操作处理完成,就发往处理下一步操作的节点。如果说Spark基于MapReduce架构的思想是“数据不动代码动”,那么Flink就类似“代码不动数据流动”...

2022-08-09 15:34:00 1617

原创 Flink部署 完整使用 (第三章)

Flink支持多种不同的部署模式,还可以和不同的资源管理平台方便地集成。本章从快速启动的示例入手,接着介绍了Flink中几种部署模式的区别,并进一步针对不同的资源提供者展开讲解了具体的部署操作。在这个过程中,我们不仅熟悉了Flink的使用方法,而且接触到了很多内部运行原理的知识。关于Flink运行时组件概念的作用,以及作业提交运行的流程架构,我们会在下一章进一步详细展开。...

2022-08-09 11:56:38 1270 2

原创 Flink快速上手 完整使用 (第二章)

本章主要实现一个Flink开发的入门程序——词频统计WordCount。通过批处理和流处理两种不同模式的实现,可以对Flink的API风格和编程方式有所熟悉,并且更加深刻地理解批处理和流处理的不同。另外,通过读取有界数据(文件)和无界数据(socket文本流)进行流处理的比较,我们也可以更加直观地体会到Flink流处理的方式和特点。这是我们Flink长征路上的第一步,是后续学习的基础。有了这番初体验,想必大家会发现Flink提供了非常易用的API,基于它进行开发并不是难事。...

2022-08-09 09:57:46 790

原创 初识Flink 完整使用 (第一章)

Flink是第三代分布式流处理器,它的功能丰富而强大。主要介绍了Flink的源起和应用,引出了流处理相关的一些重要概念,并通过介绍数据处理架构发展演变的过程,为读者展示了Flink作为新一代分布式流处理器的架构思想。最后我们还将Flink与时下同样火热的处理引擎Spark进行了对比,详细阐述了Flink在流处理方面的优势。通过本章的学习,大家不仅可以初步了解Flink,而且能够建立起数据处理的宏观思维,这对以后学习框架中的一些重要特性非常有帮助。...

2022-08-08 23:37:56 1035

原创 SparkStreaming 案例实操 完整使用 (第十七章)

2、生产数据二、需求一:广告黑名单实现实时的动态黑名单机制:将每天点击超过 100 次的用户拉黑。。1)读取 Kafka 数据之后,并对 MySQL 中存储的黑名单数据做校验;2)校验通过则对给用户点击广告次数累加一并存入 MySQL;3)在存入 MySQL 之后对数据做校验,如果单日超过 100 次则将该用户加入黑名单。3) 存放单日各用户点击每个广告的次数4) 代码实现5) 优化三、需求二:广告点击量实时统计描述:实时统计每天各地区各城市各广告的点击总流量,并将其存入 MyS

2022-08-02 17:34:27 735 2

原创 大数据之优雅关闭 完整使用 (第十六章)

流式任务需要7*24小时执行,但是有时涉及到升级代码需要主动停止程序,但是分布式程序,没办法做到一个个进程去杀死,所有配置优雅的关闭就显得至关重要了。使用外部文件系统来控制内部程序关闭。......

2022-07-25 10:50:42 294

原创 大数据之DStream 输出 完整使用 (第十五章)

与RDD中的惰性求值类似,如果一个DStream及其派生出的DStream都没有被执行输出操作,那么这些DStream就都不会被求值。➢saveAsObjectFiles(prefix,[suffix])以Java对象序列化的方式将Stream中的数据保存为SequenceFiles.每一批次的存储文件名基于参数中的为"prefix-TIME_IN_MS[.suffix]".Python中目前不可用。每一批次的存储文件名基于参数中的prefix和suffix。...

2022-07-25 10:06:01 244

原创 大数据之DStream 转换 完整使用 (第十四章)

DStream上的操作与RDD的类似,分为Transformations(转换)和OutputOperations(输出)两种,此外转换操作中还有一些比较特殊的原语,如updateStateByKey()、transform()以及各种Window相关的原语。

2022-07-20 15:23:04 810

原创 大数据之SparkDStream 创建 完整使用 (第十三章)

需要继承Receiver,并实现onStart、onStop方法来自定义数据源采集。*DStream创建*自定义数据采集器Unit={

2022-07-19 15:46:28 558

原创 大数据之SparkDstream 入门 完整使用 (第十二章)

DiscretizedStream是SparkStreaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据。➢需求使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并。对数据的操作也是按照RDD为单位来进行的。计算过程由SparkEngine来完成。统计不同单词出现的次数。...

2022-07-18 11:26:56 335

空空如也

空空如也

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

TA关注的人

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