<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[其实我是个程序员的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sbcsdn2015123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sbcsdn2015123]]></copyright><item><title><![CDATA[DBeaver 更好的SQL格式化配置]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/159464089</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/159464089</guid><author>sbcsdn2015123</author><pubDate>Wed, 25 Mar 2026 11:18:56 +0800</pubDate><description><![CDATA[导航至窗口-首选项-编辑器-SQL编辑器-SQL格式化，格式选外部格式化程序，命令行按照自己py文件的路径填写为python D:/PythonCode/sqlformat.py ${file}，勾选使用临时文件，点应用就可以看到下面输出的效果了。to PATH（把 Python 加入系统环境变量，否则命令行用不了）开命令提示符，输出版本号（如 Python 3.11.9），说明安装成功。安装完 Python 后，直接在 cmd 里输入。下载完成后，双击运行.exe 安装包。]]></description><category></category></item><item><title><![CDATA[Hive入门学习]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/123990220</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/123990220</guid><author>sbcsdn2015123</author><pubDate>Wed, 06 Apr 2022 14:56:51 +0800</pubDate><description><![CDATA[一、HIVE概念。
1.Hadoop一个数据仓库工具，可以将结构化的数据文件映射为一张数据库表，并提供简单的类SQL查询功能，
可以将HQL语句转换为MapReduce任务进行运行。
2.Hive适用于大数据集的批处理作业，例如：网络日志分析。
不适用于：
不能在大规模数据集上实现低延迟快速的查询。例如：Hive在几百MB的数据集上执行查询一般有分钟级的延迟。
不支持联机事务处理。(OLTP)
3.Hive是基于Hadoop分布式文件系统的，它的数据存储在Hadoop分布式文件系统中。Hive本身是没有专门]]></description><category></category></item><item><title><![CDATA[数仓类项目走过的坑]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/118193982</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/118193982</guid><author>sbcsdn2015123</author><pubDate>Thu, 24 Jun 2021 18:24:26 +0800</pubDate><description><![CDATA[1.SQL处理中NULL值容易导致各种问题，应考虑ODS层以上数据表字段的空值处理。
比如维度属性默认设置为-1，度量字段默认为0.
若觉得范围太大，最起码日常分析的维度属性、度量值要考虑空值的处理。

2.不要太相信上游系统的数据质量，各种你想象不到的数据质量问题。
应在开发阶段或之前，进行生产数据的探查，了解各字段的数据分布情况、各属性枚举值、空值情况。
做对应处理。异常值的处理方案需要同步业务。

3.ODS数据源层数据保持与上游一致，便于后续粗粒度数据的核对、数据溯源、以及应对后续各种新需求。
识别]]></description><category></category></item><item><title><![CDATA[阿里巴巴大数据实践所得二]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117993583</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117993583</guid><author>sbcsdn2015123</author><pubDate>Thu, 17 Jun 2021 14:47:06 +0800</pubDate><description><![CDATA[一、数据质量
完整性：指数据的记录和信息是否完整，是否存在缺失的情况。主要包括记录的缺失和字段的缺失。
准确性：指数据中信息、数据是否准确，是否存在异常或错误的信息。
一致性：数据的一致性。
及时性：数据及时呈现、产出。数据具有时效性。
结合项目，建议在数据的加工处理过程中，增加脏数据处理的步骤，这里需要依赖于业务数据的熟悉，
预知哪部分数据容易出问题。

质量管控方式：
1.上游数据机构、规则逻辑发生变化，要及时通知下游
2.数据生成加工各环节卡点校验，包括SQL扫描工具、代码测试、代码人工审核、生产数据]]></description><category></category></item><item><title><![CDATA[阿里巴巴大数据实践所得]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117563405</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117563405</guid><author>sbcsdn2015123</author><pubDate>Fri, 04 Jun 2021 15:40:50 +0800</pubDate><description><![CDATA[一、为什么需要建模

数据模型就是数据组织和存储方法，它强调从业务、数据存取和使用角度合理存储数据。
合理的数据模型：
性能：快速查询所需要的数据，减少数据的吞吐。
成本：极大地减少不必要的数据冗余，也能实现计算结果复用，极大地降低大数据系统中的存储和计算成本。
效率：极大地改善用户使用数据的体验，提高使用数据的效率。
质量：良改善数据统计口径的不一致性，减少数据计算错误的可能性。

二、模型设计
操作数据层(ODS)、明细数据层(DWD)、汇总数据层(DWS)、维度表(DIM)、应用数据层(ADS)
操作]]></description><category></category></item><item><title><![CDATA[MyCat入门]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117335012</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117335012</guid><author>sbcsdn2015123</author><pubDate>Thu, 27 May 2021 18:33:16 +0800</pubDate><description><![CDATA[一、mycat介绍
目前最流行的分布式数据库中间插件，能满足数据库大量存储，提高查询性能。

二、Mycat架构
前端用户可以把mycat看做一个数据库代理，用mysql客户端工具(Navicat)和命令访问，而后端支持mysql，sqlserver，
Oracle等主流数据库，用mysql native协议和多个mysql服务器通信，也可用JDBC协议和大多数主流数据库服务器通信，
其核心功能就是分库分表，即将一个大表水平切分成N个小表，真正的存储在后端Mysql服务器中或其他数据库中。

三、Mycat]]></description><category></category></item><item><title><![CDATA[binlog实时同步]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334996</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334996</guid><author>sbcsdn2015123</author><pubDate>Thu, 27 May 2021 18:32:20 +0800</pubDate><description><![CDATA[一、binlog实时同步

1.binlog介绍
是一个二进制格式的文件，用于记录用户对数据库更新的SQL语句信息，例如更改数据库表和更改内容的SQL
语句都会就到binlog里，但对库表等内容的查询不会记录。
默认情况下，binlog日志是二进制格式的，不能使用文本查看工具的命令查看(例如cat、vi等)，而使用mysqlbinlog解析
查看。

2.binlog的作用
当有数据写入数据库时，会同时把更新的sql语句写入对应的binlog文件里。
使用mysqldump备份时，只是对一段时间的数据进行全]]></description><category></category></item><item><title><![CDATA[Sqoop入门学习]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334924</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334924</guid><author>sbcsdn2015123</author><pubDate>Thu, 27 May 2021 18:28:02 +0800</pubDate><description><![CDATA[1.sqoop
sqoop是一个用于在Hadoop和关系型数据库服务器之间传输数据的工具。
它用于从关系型数据库(Mysql\Oracle等)导出数据到Hadoop HDFS，并从Hadoop文件系统导出到关系型数据库。
它由Apache软件基金会提供。

为什么使用sqoop?
快速实现Hadoop(HDFS/hive/hbase)与传统数据库(mysql\Oracle)之间的数据传递
Sqoop提供许多数据传输方式。(支持分布式并行)

2.工作流程
RDBMS-&gt;import(Sqoop Too]]></description><category></category></item><item><title><![CDATA[Flume入门学习]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334904</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117334904</guid><author>sbcsdn2015123</author><pubDate>Thu, 27 May 2021 18:27:00 +0800</pubDate><description><![CDATA[1.Flume是一个可收集例如日志，事件等数据资源，并将这些数量庞大的数据从各项数据资源中集中起来存储(HBase/Hadoop)的工具/服务。
Flume具有高可用，分布式，配置工具.
Cloud\facbook\WebServers\Twitter(Log/Event data) -&gt;Flume -&gt;HDFS/HBase

2.Flume Agent
Flume内部有一个或者多个Agent，然而对于每一个Agent来说，它就是一个独立的守护进程(JVM),
它从客户端接收数据，然后迅速将获取]]></description><category></category></item><item><title><![CDATA[GP\HBase\Redis\ES\分库分表比较]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117262173</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/117262173</guid><author>sbcsdn2015123</author><pubDate>Tue, 25 May 2021 18:51:27 +0800</pubDate><description><![CDATA[GreenPlum
应用场景：Greenplum适用TB级别数据仓库、集市、ODS、交互式分析数据平台等系统。 不适用于极短的时间处理大量的并发小任务(OLTP)。
	优点：Master-Slave架构、ShareNothing体系、采用Postgresql作为底层引擎
	缺点：
	1.扩展性差：数据采用Hash分布在各个节点，计算节点和存储紧密耦合，在增加节点后，需要对数据做重分布才能保证数据与节点的紧耦合（重新hash数据），进而保证系统的性能。相反，Hadoop的节点和数据是没有耦合关系的。
	2.M]]></description><category></category></item><item><title><![CDATA[Java开发总结整理一]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/116789132</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/116789132</guid><author>sbcsdn2015123</author><pubDate>Fri, 14 May 2021 13:50:13 +0800</pubDate><description><![CDATA[一、Integer等包装类要使用equals进行对比，否则会有问题。
public class HelloWorld {
  public static void main(String[] args) {
    Integer a=150;
    Integer b=150;
    Integer c = new Integer(20);
    System.out.println(a==b);//false
    System.out.println...]]></description><category></category></item><item><title><![CDATA[Oracle 收集分区统计信息]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/115235039</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/115235039</guid><author>sbcsdn2015123</author><pubDate>Fri, 26 Mar 2021 11:42:49 +0800</pubDate><description><![CDATA[--删除表
DROP TABLE TEST3;
--1.创建按日分区测试表
SQL&gt; CREATE TABLE TEST3(ID INT, PARDATE DATE)
  2  PARTITION BY RANGE (PARDATE) INTERVAL (NUMTODSINTERVAL (1,'DAY'))
  3  (
  4    PARTITION P_20180101 VALUES LESS THAN (TO_DATE('2018-01-02', 'YYYY-MM-DD'))
  5  );
]]></description><category></category></item><item><title><![CDATA[Mysql 入门学习]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/114671849</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/114671849</guid><author>sbcsdn2015123</author><pubDate>Thu, 11 Mar 2021 16:31:13 +0800</pubDate><description><![CDATA[一、连接MySQL
进入目录 mysql bin
格式： mysql -h 主机地址 -u 用户名 -p 用户密码
说明：
-h : 指定客户端所要登录的MySQL主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果我们要登录本机的 MySQL 数据库，只需要输入以下命令即可：
mysql -u root -p
若密码存在, 输入密码登录, 不存在则直接]]></description><category></category></item><item><title><![CDATA[kafka入门]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/113397381</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/113397381</guid><author>sbcsdn2015123</author><pubDate>Fri, 29 Jan 2021 16:57:11 +0800</pubDate><description><![CDATA[一、什么是kafka？

Kafka是一种分布式，基于发布/订阅的消息系统。 
高吞吐量：每秒可处理几十万条记录 
分布式：支持热扩展 
持久化：消息持久化到磁盘
容错：副本容错 
高并发：客户端同时高并发读写

使用背景： 
峰值处理能力
统一接口服务
解耦

消息系统介绍： 
一个消息系统负责将数据从一个应用传递到另外一个应用，应用只需关注于数据，无需关注数据在两个或多个应用间是如何传递的。
分布式消息传递基于可靠的消息队列，在客户端应用和消息系统之间异步传递消息。 
有两种主...]]></description><category></category></item><item><title><![CDATA[Spark入门简介]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/112584197</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/112584197</guid><author>sbcsdn2015123</author><pubDate>Wed, 13 Jan 2021 19:14:00 +0800</pubDate><description><![CDATA[一、Spark简介
Spark最初由美国加州伯克利大学的AMP实验室于2009年开发，是基于内存计算的大数据并行计算框架，
可用于构建大型的、低延迟的数据分析应用程序。
Spark特点：
1.运行速度快：Spark使用先进的DAG(Directed Acyclic Graph，有向无环图)执行引擎，以支持循环数据流与内存计算，
基于内存的执行速度可比Hadoop MapReduce快上百倍，基于磁盘的执行速度也能快十倍；
2.容易使用：Spark支持使用Scala、Java、Python和R语言进行编程，简]]></description><category></category></item><item><title><![CDATA[HBase入门]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/112361189</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/112361189</guid><author>sbcsdn2015123</author><pubDate>Fri, 08 Jan 2021 14:40:01 +0800</pubDate><description><![CDATA[一、概览
HBase是一个分布式的，面向列的开源数据库。
它更像是分布式存储而不是分布式数据库，它缺少很多RDBMS系统的特性，比如列类型，辅助索引，触发器，和高级查询语言等。
那Hbase有什么特性呢？如下：

强读写一致，但是不是“最终一致性”的数据存储，这使得它非常适合高速的计算聚合。
.自动分片，通过Region分散在集群中，当行数增长的时候，Region也会自动的切分和再分配自动的故障转移。
Hadoop/HDFS集成，和HDFS开箱即用，不用太麻烦的衔接
丰富的“简洁，高效”API，Thrift]]></description><category></category></item><item><title><![CDATA[IDEA配置]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109517621</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109517621</guid><author>sbcsdn2015123</author><pubDate>Thu, 05 Nov 2020 18:13:19 +0800</pubDate><description><![CDATA[IDEA配置：

1.从SVN 检出项目之后，并用 IDEA 首次打开项目，IDEA 会弹出如下选择框：
Do you want to schedule the following file for addition to Subversion? xxx.iml

实际上，XXX.iml文件是 IDEA 自动为我们（首次）打开的项目生成的配置文件，
例如我们的项目名为accounting-hessian，那么 IDEA 就自动为我们的项目生产了一个名为accounting-hessian.iml的配置文件。]]></description><category></category></item><item><title><![CDATA[Quartz Misfire]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109498354</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109498354</guid><author>sbcsdn2015123</author><pubDate>Wed, 04 Nov 2020 20:22:52 +0800</pubDate><description><![CDATA[Quartz Misfire
一、Misfire的原因
1、当job达到触发时间时，所有线程都被其他job占用，没有可用线程。
2、在job需要触发的时间点，scheduler停止了（可能是意外停止的）。
3、job使用了@DisallowConcurrentExecution注解，job不能并发执行，当达到下一个job执行点的时候，上一个任务还没有完成。
4、job指定了过去的开始执行时间，例如当前时间是8点00分00秒，指定开始时间为7点00分00秒
二、MisFire的前置条件
misfire产生需要]]></description><category></category></item><item><title><![CDATA[Java 单元测试入门]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109451835</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109451835</guid><author>sbcsdn2015123</author><pubDate>Mon, 02 Nov 2020 16:36:46 +0800</pubDate><description><![CDATA[Java 单元测试
单元测试是编写测试代码，用以检测特定的、明确的、细颗粒的功能!
单元测试规则：
1、每一个测试方法上使用@Test进行修饰
2、每一个测试方法必须使用public void 进行修饰
3、每一个测试方法不能携带参数
4、测试代码和源代码在两个不同的项目路径下
5、测试类的包应该和被测试类保持一致
6、测试单元中的每个方法必须可以独立测试
以上的6条规则，是在使用单元测试的必须项，当然junit也建议我们在每一个测试方法名加上test前缀，
表明这是一个测试方法。
计算类
public c]]></description><category></category></item><item><title><![CDATA[Spring事务传播机制]]></title><link>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109386349</link><guid>https://blog.youkuaiyun.com/sbcsdn2015123/article/details/109386349</guid><author>sbcsdn2015123</author><pubDate>Fri, 30 Oct 2020 15:33:03 +0800</pubDate><description><![CDATA[事务
一、事务特性
原子性（Atomicity）：事务是一个原子操作，由一系列动作组成。事务的原子性确保动作要么全部完成，要么完全不起作用。
一致性（Consistency）：一旦事务完成（不管成功还是失败），系统必须确保它所建模的业务处于一致的状态，而不会是部分完成部分失败。在现实中的数据不应该被破坏。
隔离性（Isolation）：可能有许多事务会同时处理相同的数据，因此每个事务都应该与其他事务隔离开来，防止数据损坏。
持久性（Durability）：一旦事务完成，无论发生什么系统错误，它的结果都不应该]]></description><category></category></item></channel></rss>