自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (7)
  • 收藏
  • 关注

原创 实时数仓项目开发过程中发现的几个问题和优化点(数据接入)

nifi.provenance.repository.max.attribute.length属性是Apache NiFi工具中的一个属性,用于指定属性值(即Attributes)的最大长度。首先,增、改、删三种SQL要输出到三个FlowFile中,因为如果输出到一个FlowFile,三个SQL以分号分割,在下一步执行时,会报错,这是JDBC机制决定的。然而,如果同一个流文件上设置重复的属性名,则会被视为同一属性,后面的属性值会覆盖先前的属性值。因此,在设置属性时应格外注意,以避免不必要的数据丢失。

2023-05-09 17:37:55 709 1

原创 实时数仓--数据实时接入模块相关视频录制完成

实时数仓架构Debezium+Kafka+NiFi+Doris技术栈,如何实现数据的实时接入?内容来自作者正在开发的实时数仓项目。

2023-04-27 16:27:35 641

原创 Streamsets--一个流批一体的ETL工具_如何少踩坑?

生产环境中使用Streamsets DC近两年,实时数仓稳定运行近两年,为了让更多使用SDC的朋友不再经历使用SDC过程中遇到的各种坑,我将近两年的实时数仓 ETL开发经验录制成一套视频,

2021-06-17 17:44:02 993

翻译 Streamsets官方文档--Pipeline的概念和设计

管道概念与设计什么是管道?管道描述了从源头系统到目标系统的数据流,并定义了在此过程中如何转换数据。可以使用单个origin(初始)阶段表示源头系统,使用多个processor(处理器)阶段转换数据,使用多个destination(目标)阶段表示目标系统。在开发管道时,可以使用Development Stages(开发阶段)提供示例数据并生成错误以测试错误处理。您还可以使用data preview(数据预览)来确定阶段如何通过管道更改数据。可以使用executor阶段执行事件触发...

2021-04-15 11:38:33 846

翻译 Streamsets--一个流批一体的ETL工具

什么是StreamSetsData Collector?StreamSets Data Collector是一个轻量级、强大的设计和执行引擎,可以实时处理流数据。使用Data Collector器来路由和处理数据流中的数据。要定义数据流,需要在Data Collector中设计一个管道(pipeline)。管道由表示管道的起点和目的地的阶段以及希望执行的任何其他处理组成。在设计了管道之后,单击Start,Data Collector开始工作。Data Collector在数据到达原点(orig.

2021-03-04 10:45:43 4617 3

原创 NiFi中缓存组件的运行机制及增删改缓存数据

在建设实时数仓的过程中,利用缓存机制来提升实时指标的实时性,是一种常用的方法。NIFI提供了专门的缓存组件来应对这一需求。

2023-10-12 13:21:24 296

原创 基于NIFI工具搭建生产级别的IIOT系统

如果需要修改MINIFI中的ETL任务,那么我们需要导出模板,转换成yml文件,放到MINIFI的conf目录下,然后重启MINIFI。技术上可行,但实际是不现实的,因为设备成千上万,部署位置千差万别。有没有更好的方法呢?

2023-10-11 09:49:58 258

原创 实时数仓中数据实时输出的思考与实现

如果想更加实时,可以将数据实时分析这一步直接做成服务,供BI大屏和第三方调用,省掉了ADS层落盘步骤,实时性更强,只是这样做对数仓架构资源配置要求较高,需架构师做出平衡。例如,我们可以将数据公开为API或Web服务的方式,以允许第三方系统或应用程序访问实时数仓的数据,从而实现数据共享和增值。使用NiFi将实时数据流输出:我们可以使用NiFi的Provenance数据监控和处理实时数据流,并使用PutKafka或PutFile等组件将数据实时输出到其他系统或应用程序。

2023-06-02 10:43:31 566

原创 实时数仓中数据实时接入的实现思考

将kafka中的增量CDC数据接入到Doris或者Kudu中,难点在于顺序的保证上。因为CDC数据包括记录的增删改日志,如果不按原始顺序写入到目标表,就会造成目标表数据与原始表数据不一致的结果。我们知道,如果要保证顺序,就会影响吞吐量,造成写入速度降低,进而延迟增加,要实现实时数仓,这个矛盾点必须解决。

2023-04-23 13:59:20 887

原创 ETL工具NIFI的3种部署方式(免登录方式、单用户、多租户登录方式)

在实时数仓架构中,选一个得心应手的ETL工具,可以大大提高开发效率,节省人力成本。这里向大家推荐一款很好的、笔者已在生产环境中使用的、可以实现无代码编程的ETL工具:NIFI。

2023-03-14 16:22:01 1272 1

原创 实时数仓架构哪些事儿(续13-PostgreSQL CDC数据实时接入Kudu)

本节给大家分享下PostgreSQL数据库的CDC数据采集和DDL监控。

2022-10-06 11:09:12 1913

原创 实时数仓架构那些事儿

架构师要做的事情很多,不同的项目,不同的公司体量,不同的人员数量都会有不同的技术选型,进而形成不同的架构。在这里,我只想聊流批一体的实时数仓架构,不聊离线数仓架构,不聊Java架构 OR 微服务架构;聊更多的是架构思路,而不是某个技术的详细培训。...

2022-07-04 16:03:29 2750 1

原创 湖仓一体之delta lake处理schema更新

Delta Lake自动验证正在写入的DataFrame的schema是否与表的schema兼容。Delta Lake使用以下规则来确定从DataFrame写入表是否兼容: 所有DataFrame列必须存在于目标表中。如果DataFrame中的列没有出现在表中,则会引发异常。在表中但不在DataFrame中的列被设置为空。 DataFrame列数据类型必须与目标表中的列数据类型匹配。如果它们不匹配,将引发异常。 DataFrame列名不能只是大小写不同。这意味着不能在同一个表中定义

2021-07-17 15:08:09 529 4

原创 streamsets视频教程,不知道有多少集

有一套streamsets视频教程,根据作者的实时数仓项目进度在持续更新,很有特点吧?还有一个特点就是售后服务,免费解决实时数仓架构问题,各种技术问题,以及免费出解决方案。作者十五年的IT从业经验,大数据经验丰富,目前专注于湖仓一体架构的落地,是一个不可多得的资源!!!!!!https://edu.csdn.net/course/detail/32343可以通过上面视频链接了解详情!...

2021-06-26 21:21:45 371

原创 实时数仓ETL高级特性实战-采集漂移数据到Hive和Impala

数据漂移,即数据结构和语义不断的计划外改变,是数据工程师长期面临的问题。模式更改可能会破坏集成,在最坏的情况下,会无声地在系统中传播坏数据,并导致基于错误分析做出决策。在过去,数据工程师必须手动对漂移做出反应——在输入的模式中寻找变化,手动修改Hive表,并重新提交修改过的数据接入作业。StreamSets数据收集器漂移同步特性通过近乎实时地自动创建和修改表来解决模式漂移问题,使数据立即准备好供终端用户使用。本教程将带领您为一个简单的用例设置漂移同步。场景是这样的:我们想要从关系数据库中的一个表中获

2021-04-26 16:44:16 333

翻译 实时数仓ETL-数据流触发器

数据流触发器概述数据流触发器(Dataflow triggers)是事件框架用来启动任务以响应管道中发生的事件的指令。例如,当pipeline将文件写入HDFS后,可以使用数据流触发器启动MapReduce作业。或者,可以使用数据流触发器在JDBC Query Consumer origin处理完所有可用数据之后停止管道。事件框架由以下组件组成:event generation(事件产生)事件框架生成与管道相关的事件和与阶段相关的事件。事件框架仅在管道启动和停止时才生成管道事件。当特定的..

2021-04-25 10:48:50 494

原创 Streamsets ETL 之 ClickHouse数据库

如何使用Streamsets这个大数据ETL工具读取ClickHouse数据库数据?如何使用Streamsets这个大数据ETL工具写入ClickHouse数据库数据?W X: bigdata_work

2021-04-19 14:00:23 1694 6

翻译 使用Spark从数据库接入数据

第八章 从数据库接入数据本章涵盖了 从关系数据库中接入数据 理解方言在Spark和数据库之间的通信中的作用 在Spark中构建高级查询,以便在接入之前对数据库进行寻址 理解与数据库的高级通信 从Elasticsearch接入数据 在大数据和企业环境中,关系数据库通常是执行分析的数据来源。理解如何通过整个表或SQL SELECT语句从这些数据库中提取数据是有意义的。在本章中,您将学习从关系数据库中接入数据的几种方法,可以一次性接入全表,也可以在接入之前

2020-12-09 21:34:18 986

翻译 kafka权威指南中文版之三

第三章kafka producer---向kafka写入消息无论你将kafka作为一个消息队列,或者消息总线,还是一个数据存储平台,你都要通过生产者producer向kafka写入数据,通过消费者consumer读取kafka的数据。例如,一个信用卡事务处理系统,会有一个客户端应用或者一个在线商店应用,负责在交易发生时,将每一个事务发送到kafka,另一个应用通过规则引擎校验这个事务,决定

2017-03-25 22:42:40 6631

翻译 kafka权威指南中文版之二

上图所示,consumer订阅kafka集群中(一个broker中的一个topic中)的消息,然后对broker发起一个获取消息的请求,请求中携带了topic、partition、offset等信息,接着用pull的方式获取kafka log中所有可用消息,并对消息中的数据进行处理,比如使用spark进行计算,将结果存入DB中。consumer订阅消息时,会连接上任一个可用的broker,并获

2017-03-13 20:47:15 6322

翻译 kafka权威指南中文翻译之一

kafka初见(Meet Kafka)在讨论Kafka细节之前,有必要先来了解下消息发布/订阅的概念,这个概念非常重要。 kafka中的数据单位是message。对比数据库来说,可以把消息看做数据库中的记录。对kafka而言,一个消息就是一个字节数组,字节数组中的数据没有特定的格式或者意义。消息有一个可选的元数据信息,称为key。key也是一个字节数组,与消息一样,没有特别的含义。ke

2017-03-13 20:44:40 2814

翻译 Hadoop运维工程师专家之路--第二章Hadoop架构简介

第二章Hadoop架构简介本章包括l  Hadoop架构l  分布式集群l  HDFS架构l  YARN架构本章介绍Hadoop架构。在你学习管理Hadoop集群之前,有必要先了解下Hadoop的集群架构。Hadoop包括两个基础层:存储层HDFS,处理层YARN。本章非常关键,因为它引入了几个关键术语,以及相关的守护进程和进程相互配合,完成hadoop数据库的存储和计

2017-02-04 16:58:07 3414 1

翻译 第九章 使用事务

第九章 使用事务学完了Camel的核心概念,你可能觉得你可以使用Camel来解决任何集成问题了。不过,还有更多的东西要学习。在本书的最后一部分,我们将讨论的话题是非常有用的。在很多的应用中你都会碰到这个概念:事务。在第九章中,我们将解释如何使用Spring的事务框架让Camel路由参与到事务中。在第十章,我们将讨论的重要的,有时也很复杂的话题:并发性。在Camel项目中,了解如何配置和调优

2016-11-01 11:33:35 2074 1

翻译 Camel In Action 第八章 企业集成模式

第八章 企业集成模式 本章包括 Aggregator(聚合器)企业集成模式 Splitter(分流器)企业集成模式 Routing Slip企业集成模式 Dynamic Router企业集成模式 Load Balancer企业集成模式 今天,大部分企业运行的信息系统不再是一个单独的系统,而是拥有多个独立的系统。这些系统相互集成的需求以及与外部业务伙伴系统和政府系统相

2016-11-01 11:32:42 3508

翻译 Camel In Action 第七章 理解camel组件

第七章 理解camel组件本章包括:camel组件预览使用file、database组件JMS组件CXF web serviceMINA组件内存消息自动任务:Quartz 和 Timer组件7.1 camel组件预览组件是Camel主要的扩展点。从Camel的第一个版本到Camel的当前版本,Camel的组件列表迅速增长,目前已有80

2016-11-01 11:31:28 7944

翻译 Camel In Action 第六章 camel单元测试

第六章 camel单元测试本章包括:介绍和使用Camel测试套件多种环境下的camel测试使用mock模拟真实组件模拟错误不使用mock进行测试备注:mock测试就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。对于确保应用集成是成功的,单元测试时非常重要的。JUnit已经成为单元测试的标准

2016-11-01 11:29:11 2805

翻译 Camel In Action 第五章 错误处理

第五章 错误处理本章内容包括:1、可恢复的错误与不可恢复的错误两者的区别2、Camel错误处理使用的时机和位置3、使用返还策略4、使用onException处理异常、忽略异常5、错误处理的细粒度控制在前面三章,我们讨论了任何集成工具包应该提供三个主要功能:路由、转换和中介。在本章中,我们关注当错误发生时应该怎么做。我们提前向你介绍错误处理,是因为我们相信

2016-11-01 11:27:38 5550

翻译 Camel In Action 第四章 Camel中bean的使用

第四章 Camel中bean的使用本章包括:1、理解Service Activator企业设计模式2、Camel如何使用注册中心查找bean3、Camel如何调用bean方法4、单个参数绑定与多个参数绑定4.1 使用bean的简单方式和复杂方式在本节中,我们看一个例子,这个例子展示了使用bean的复杂方式(

2016-11-01 11:26:40 5054

翻译 Camel In Action 第三章 数据转换

第三章 数据转换本章包括:使用EIPs和Java两种方式装换数据转换XML格式的数据通用数据格式装换编写转换器理解Camel的类型装换机制在现实生活中,人们说不用的语言,在IT世界中,有不同的协议。当进行系统集成时,软件工程师经常需要在各种协议之间充当调解人。为了解决这个问题,使用的数据模型必须从一种形式转换到另一个协议,以适应任何协议发的接收者都能够理解。

2016-11-01 11:25:21 6441

原创 Hive实战9---更新、删除操作

1、创建表:create table users2(id int,name string)clustered by (id) into 1 buckets stored asorc tblproperties('transactional'='true');2、插入数据insert into users2(1,'ZHANGSAN'),(2,'LISI');3、更新数据upd

2016-10-08 16:53:44 2571

原创 hive实战1---安装hive

hive实战1---安装hive

2016-09-30 17:09:44 985

转载 hbase错误调试过程记录

启动Hadoop和HBase之后,执行jps命令,有HMaster的进程,但是进入到HBase的shell,执行一个命令,会出现下面的错误:ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times表面上看是hdfs处于安全模式下造成的(hadoop dfsadmin -safemode leave 退

2016-04-26 10:04:57 695

转载 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint

http://stackoverflow.com/questions/21732988/error-org-apache-hadoop-hdfs-server-namenode-secondarynamenode-exception-in-docWe need to stop the hadoop services first , and then delete the tmp seconda

2016-04-22 11:50:27 1155

转载 Hbase Table already exists问题

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-22 11:46:44 2216

翻译 Spring in action(Spring实战) 第四版中文翻译

第一部分 Spring核心Spring提供了很多功能,但是所有这些功能的基础是是依赖注入(DI)和面向方面编程(AOP)。第一章 Springing into action本章包括:Spring的bean容器探索Spring的核心模块强大的Spring生态系统Spring的新特性现在是java程序员的好时代。在长达20年的发展过程中,java经历了一

2014-12-16 11:01:58 18964 1

转载 在hibernate+mysql:Field 'id' doesn't have a default value两种解决办法

http://blog.163.com/clover_zhao/blog/static/13109759020119831849276/使用注解@GeneratorValue,后台报错Field 'id' doesn't have a default value。@Id  @GeneratedValue public int getId() {  return id; }

2012-12-13 11:19:49 2200 1

原创 jboss实战之二 -----jboss的类加载机制

如图所示:classpath对应的JVM中的类和jboss-home/lib目录下的类处于最底层,我们暂且称之为“低级”层;deploy目录中应用中的类和server/xxx/lib中的类处于中间层,称之为“中级”层;WAR包中的类处于最高级,称之为“高级”层;jboss的类加载机制为高级层中的类可以应用中低级层中的类,中级层中的类可以引用低级层中的类,反之则不行。即处于上层中

2012-09-06 10:43:34 1440 2

原创 jboss实战之一 ----jboss日志

JBOSS日志:1、涉及到的配置文件和日志文件:server/XXX/conf/jboss-log4j.xml server/XXX/log/server.log2、jboss日志默认包括控制台日志(对应jboss-log4j.xml配置文件中的 3、如何更改文件日志生成的位置?默认情况下,文件日志的生成位置在 JBOSS-HOME/server/default/log 目录下

2012-09-02 09:51:14 3405

原创 JMS实战之四 ------JMS学习环境的搭建

JMS学习环境的搭建1、  打开eclipse,新建项目”learnJMS”2、  添加JMS相关包,由于我们使用的消息中间件为ActiveMQ,所以需要从ACTIVEMQ_HOME\lib目录下的相关包:3、创建三个类,Publisher.java,Subscriber.java,Listener.java代码如下: package ex01;import jav

2012-07-11 09:01:38 1899 2

原创 JMS实战之三 ------如何安装消息中间件ActiveMQ

如何安装ActiveMQ?1、  下载ActiveMQ:http://activemq.apache.org/2、  解压后目录如下图:3、  双击运行bin目录下的activemq.bat文件,启动后如下图:4、  通过浏览器访问地址 http://localhost:8161/admin 页面正常显示,说明ActiveMQ安装成功。

2012-07-09 22:07:15 1419

Apache NiFi用户指南 (1.21版本译者 公众号登峰大数据)

Apache NiFi用户指南 (1.21版本译者 公众号登峰大数据) 学习NIFI ETL工具的最佳入门读物就是:阅读官方文档。有了初步的比较全面的了解,可以达到事半功倍的效果!欢迎大家关注我的公众号,一起学习NIFI工具,一起探讨基于开源工具的实时数仓架构!

2023-05-18

湖仓一体架构--什么是Apache Iceberg.pdf

Iceberg构建湖仓一体架构的必备,与Delta Lake、hudi齐名,数据湖技术三驾马车。

2021-08-04

Hands-on Sencha Touch中文翻译第六章.pdf

Hands-on Sencha Touch中文翻译第六章.pdf。个人翻译,欢迎交流。

2014-12-22

Camel实战第五章

《Camel In Action》一书第五章的中文版。个人翻译,只用于交流。

2014-12-18

Camel实战中文版第四章.pdf

Camel In Action一书第四章的中文版。

2014-11-22

jbossAS7开发指南

JbossAS7最新版的开发指南,学习jboss应用服务器不可不读的文档。

2012-11-30

Jboss AS7 管理指南(官方英文文档)

Jboss应用服务器7.0最新版的管理指南,学习最新版的jbossAS不可不读。

2012-11-30

空空如也

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

TA关注的人

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