<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fhy36897的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fhy36897</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fhy36897]]></copyright><item><title><![CDATA[浅谈数据仓库（DATA WAREHOUSE）]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/107476315</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/107476315</guid><author>fhy36897</author><pubDate>Mon, 20 Jul 2020 23:25:42 +0800</pubDate><description><![CDATA[数据仓库概念

数据仓库（Data Warehouse）,是为企业所有决策制定过程，提供所有系统数据支持的战略集合。

通过对数据仓库中数据的分析，可以帮助企业，改进业务流程、控制成本、提高产品质量等。

数据仓库并不是数据的最终目的地，而是为数据的最终目的地做好准备，这些准备包括对数据的：

清洗、转义、分类、重组、合并、拆分、统计等等。



一般企业的数仓系统示意图如上图所示。

数据库与数据仓库的区别

相信很多刚接触数据仓库这个概念的小伙伴都会有这样一个疑问，数据库和数据仓库有啥不同吗？

这里.]]></description><category></category></item><item><title><![CDATA[Linux下安装多个版本的JDK选择默认版本]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/107452606</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/107452606</guid><author>fhy36897</author><pubDate>Sun, 19 Jul 2020 22:22:00 +0800</pubDate><description><![CDATA[当我们Linux系统中存在多个JDK版本，该如何切换默认的JDK版本呢？这里我做了以下总结

1.查看当前linux系统中默认使用的JDK版本

java -version



通过java -version 查询出来当前linux使用的是1.7.0_79版本，我想换成1.8.0_141版本的JDK，接下来我们需要做的是修改配置文件。

2.修改配置文件

alternatives --config java



通过alternatives --config java 指令查看是没有1.8.0...]]></description><category></category></item><item><title><![CDATA[查找linux下jdk安装路径]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/107451250</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/107451250</guid><author>fhy36897</author><pubDate>Sun, 19 Jul 2020 21:19:20 +0800</pubDate><description><![CDATA[Linux如何查看JDK的安装路径

有些小伙伴想知道该如何快速定位到当前linux系统下JDK的安装路径，那么有什么方法呢？这里我做了以下俩种不同情况下的总结。

1.当虚拟机中配置了Java的环境变量

这种情况就非常简单了，我们只需要在命令行中输出Java的环境变量即可快速定位到JDK的安装路径

命令： echo $JAVA_HOME

2.当虚拟机中没有配置Java的环境变量时

当我们通过第一种方法没有输出信息的时候，说明此虚拟机没有配置JAVA的...]]></description><category></category></item><item><title><![CDATA[Linux系统的运行级别及找回root用户密码方法]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/107443177</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/107443177</guid><author>fhy36897</author><pubDate>Sun, 19 Jul 2020 12:00:24 +0800</pubDate><description><![CDATA[Linux系统的运行级别
运行级别说明:
0: 关机
1：单用户【找回丢失密码】
2：多用户状态没有网络服务
3：多用户状态有网络服务
4：系统未使用保留给用户
5：图形界面
6：系统重启
常用的运行级别是3和5
系统运行级别的配置文件/etc/inittab
查看配置文件最后一行即是自己系统下正在使用的运行级别
切换到指定运行级别的指令
init + id 例： init 3

tips：单用户模式可帮助找回密码
例：当我们忘掉root用户的密码怎么办呢？
首先我们可以在vmware中先将自己的虚拟机关.]]></description><category></category></item><item><title><![CDATA[IDEA快捷键总结（持续更新中。。。）]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/106085371</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/106085371</guid><author>fhy36897</author><pubDate>Tue, 12 May 2020 21:17:58 +0800</pubDate><description><![CDATA[IDEA快捷键
1.快速生成main方法
psvm
2.快速生成System.out.println()
sout
3.快速删除一行
ctrl + y
4.左侧项目列表快速展开与关闭（没啥实际意义）
展开：键盘右箭头
关闭：键盘左箭头
5.快速新建/新增
Alt + Insert
6.窗口快速变小变大
Ctrl + Shift + F12
7.快速切换程序界面
Alt +　←/→
8.快速切换窗口
Alt + 标号
9.查看需要传递的参数
Ctrl + p (需要在参数的括号里面使用)
10.注释
单行注释]]></description><category></category></item><item><title><![CDATA[Oracle 数据库日常运维SQL]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/106034462</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/106034462</guid><author>fhy36897</author><pubDate>Sun, 10 May 2020 12:27:14 +0800</pubDate><description><![CDATA[1.查看sql_text
select a.PROGRAM,b.spid,c.sql_text,c.sql_id,c.sql_text
from V$SESSION a ,V$PROCESS b ,v$sqlarea c
where a.PADDR =b.addr
and a.sql_hash_value = c.HASH_VALUE
and a.username is not null;

2.查看是否有被锁对象及锁模式(
locked_mode
0:none
1:null 空
2:Row-S行共享(RS]]></description><category></category></item><item><title><![CDATA[PL/SQL——简介&基础]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/90677345</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/90677345</guid><author>fhy36897</author><pubDate>Wed, 29 May 2019 19:54:56 +0800</pubDate><description><![CDATA[PL/SQL基础
一、PL/SQL快结构
PL/SQL块由三个部分组成：定义部分、执行部分、异常处理部分。定义部分用于定义常量、变量、游标、异常、复杂数据类型等；
执行部分用于实现应用模块功能，该部分包含了要执行的PL/SQL语句和SQL语句；异常处理部分用于处理执行部分可能出现的运行错误。
PL/SQL块的基本结构如下所示
 DECLARE
  /*
  * 定义部...]]></description><category></category></item><item><title><![CDATA[Oracle--使用同义词]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/90670666</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/90670666</guid><author>fhy36897</author><pubDate>Wed, 29 May 2019 14:40:19 +0800</pubDate><description><![CDATA[使用同义词
同义词是方案对象的别名。通过使用同义词，一方面可以简化对象访问，另一方面可以提高对象访问的安全性。
在Oracle数据库中，同义词包括公共同义词和私有同义词俩种类型，其中公共同义词是指所有用户都可以直接引用的同义词。
并且这种同义词由PUBLIC用户组所拥有；私有同义词是指只能由其方案用户直接引用的同义词。
如果数据库用户要访问公共同义词，那么可以直接引用，不需要加方案名；
如果数据库...]]></description><category></category></item><item><title><![CDATA[Oracle--使用序列]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/90665213</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/90665213</guid><author>fhy36897</author><pubDate>Wed, 29 May 2019 09:37:29 +0800</pubDate><description><![CDATA[使用序列
序列（Sequence）是一种用于生成唯一数字的数据库对象。序列生成器（Sequence Generator）会自动生成顺序递增的序列号，从而帮助你提供唯一的主键值。
当需要使用顺序递增的数字时，如果不使用序列，那么需要编写程序生成数字值；通过使用序列，可以简化这种处理操作。
一、建立序列
建立序列是使用CREATE SEQUENCE命令来完成的。为了在当前方案中建立序列，要求用户必须具...]]></description><category></category></item><item><title><![CDATA[Oracle--使用索引]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/90638272</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/90638272</guid><author>fhy36897</author><pubDate>Tue, 28 May 2019 14:07:24 +0800</pubDate><description><![CDATA[使用索引
索引用于加快数据定位速度。通过使用索引，可以大大降低I/O次数，从而提高SQL语句的访问性能。
1.单列索引和复合索引
按照索引列的个数，可以将索引划分为单列索引和复合索引俩种类型。
单列索引是指基于单个列所建立的索引，复合索引是指基于两列或多列所建立的索引。
注意，在同一张表上可以建立多个索引，但要求列的组合必须不同，使用以下语句建立的两个索引是合法的：
CREATE INDEX em...]]></description><category></category></item><item><title><![CDATA[Oracle--视图操作]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/90603167</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/90603167</guid><author>fhy36897</author><pubDate>Mon, 27 May 2019 14:40:13 +0800</pubDate><description><![CDATA[视图
一、视图简介：
视图是基于其他表或者其他视图的逻辑表，它本身没有任何数据。
在视图上的SELECT,INSERT,UPDATE和DELETE等操作实际都是针对视图基表来完成的。
视图的作用：
1.限制数据访问。因为视图定义对应于SELECT语句，所以当访问视图时只能访问SELECT语句所涉及到的列。
2.简化复杂查询。如果经常需要在多个表之间执行复杂查询操作，那么可以基于该复杂查询语句建立视...]]></description><category></category></item><item><title><![CDATA[Oracle--其他复杂查询]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89919761</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89919761</guid><author>fhy36897</author><pubDate>Tue, 07 May 2019 14:05:26 +0800</pubDate><description><![CDATA[其他复杂查询

 当开发数据库应用程序时，除了使用基本查询、数据分组、连接查询、子查询之外，还需要使用集合操作符、层次查询、Flashback查询等。一、使用集合操作符
 集合操作符专门用于合并多条SELECT语句的结果，包括UNION、UNION ALL、INTERSECT和MINUS四个操作符。
...]]></description><category></category></item><item><title><![CDATA[Oracle子查询大全]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89841081</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89841081</guid><author>fhy36897</author><pubDate>Sun, 05 May 2019 10:55:44 +0800</pubDate><description><![CDATA[子查询

一、单行和多行子查询1.单行子查询
单行子查询是指返回一行数据的子查询语句。当在where子句中引用单行子查询时，可以使用单行比较符(=,&lt;,&gt;,&lt;=,&gt;=,&lt;&gt;)。SELECT ename,sal,deptno FROM emp where deptno...]]></description><category></category></item><item><title><![CDATA[Oracle--数据分组查询]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89678461</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89678461</guid><author>fhy36897</author><pubDate>Mon, 29 Apr 2019 16:58:12 +0800</pubDate><description><![CDATA[数据分组

   在关系数据库中，使用数据分组可以取得表数据的汇总信息。数据分组是通过分组函数、GROUP BY以及HAVING等子句共同实现的。
一、常用分组函数：
1.MAX和MIN
函数MAX用于取得列或表达式的最大值，函数MIN用于取得列或表达式的最小值，这俩个函数适用于任何数据类型。
...]]></description><category></category></item><item><title><![CDATA[Oracle--事务]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89667753</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89667753</guid><author>fhy36897</author><pubDate>Mon, 29 Apr 2019 08:46:44 +0800</pubDate><description><![CDATA[控制事务


简介：事务用于确保数据的一致性，它由一组相关的DML语句组成，该组DML语句所执行的操作要么全部确认，要么全部取消。
数据库事物主要由INSERT、UPDATE、DELETE和SELECT...FOR UPDATE语句组成。当应用程序中执行第一条SQL语句时，会开始事务；
当执行COMM...]]></description><category></category></item><item><title><![CDATA[Oracle SQL单行函数之NULL函数及比较函数]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89638868</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89638868</guid><author>fhy36897</author><pubDate>Sun, 28 Apr 2019 15:18:16 +0800</pubDate><description><![CDATA[NULL函数

1.COALESCE(expr1[,expr2][,expr3]...)
该函数用于返回表达式列表中第一个NOT NULL表达式的结果。
例：SELECT ename,sal,comm,coalesce(comm,sal) salary
FROM emp WHERE deptno=30;
2.LNNCVL(condition...]]></description><category></category></item><item><title><![CDATA[Oracle SQL单行函数之转换函数]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89637613</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89637613</guid><author>fhy36897</author><pubDate>Sun, 28 Apr 2019 14:33:03 +0800</pubDate><description><![CDATA[转换函数


简介：转换函数用于将数值从一种数据类型转换为另一种数据类型
1.ASCIISTR(string)
该函数用于将字符串转变为ASCII子串值。
2.CAST(expr AS type_name)
该函数用于将一个内置数据类型或集合类型转变为另一个内置数据类型或集合类型。expr用于指定源数据，type_na...]]></description><category></category></item><item><title><![CDATA[数据仓库ETL算法之拉链算法]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89553784</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89553784</guid><author>fhy36897</author><pubDate>Sun, 28 Apr 2019 09:04:34 +0800</pubDate><description><![CDATA[目录



拉链定义

拉链表数据存储方式

拉链的意义

拉链算法详解

拉链定义

现实社会：拉链是依靠排列的链牙，使物品并合或分离的连接件
	数据仓库：记录数据在某一时间内的状态以及数据在某一时点上的变化的数据存储方式，也是应需求产生的技术解决方案
历史存储数据的俩种方式：

快照存储
	拉链存储
下面用一组业务数据来解释俩者区别：



业务系统2014年1月1日的数据
	账户ID
	...]]></description><category></category></item><item><title><![CDATA[深度优先和广度优先]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89516704</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89516704</guid><author>fhy36897</author><pubDate>Thu, 25 Apr 2019 15:30:10 +0800</pubDate><description><![CDATA[深度优先（递归）

文字解释：深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中，当一个超链被选择后，被链接的HTML文件将执行深度优先搜索，即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止，然后返回到某一个HTML文件，再继续选择该HTML文...]]></description><category></category></item><item><title><![CDATA[Python学习笔记（二）之变量与运算符]]></title><link>https://blog.youkuaiyun.com/fhy36897/article/details/89349172</link><guid>https://blog.youkuaiyun.com/fhy36897/article/details/89349172</guid><author>fhy36897</author><pubDate>Wed, 17 Apr 2019 16:06:58 +0800</pubDate><description><![CDATA[变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建，都包括变量的标识，名称和数据这些信息。

每个变量在使用前都必须赋值，变量赋值以后该变量才会被创建。

等号（=）用来给变量赋值。

Python允许你同时为多个变量赋值：a=b=1

也可以为多个对象指定多个变量：a, b, c = 1, 2, "john"

算数运算符：+-*/ // % **

以下假设变量a=...]]></description><category></category></item></channel></rss>