- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 oracle 管道表(pipelined table)函数与普通表函数简单对比
看资料说管道表函数在返回结果时不是一次性返回全部结果,因此对于某些对响应比较看重的报表程序而言比较友好。而普通表函数要在所有结果都到齐后才一次性返回结果。下面就做一个实验来验证:首先创建一个自定义的集合类型create type test_obj as object(id number,name varchar2(10));用自定义的集合类型创建一个table类型creat...
2020-03-14 17:12:27 839 1
原创 Erwin利用name mapping配置实现物理模型指定列格式
需求背景,要用给定的词根表将逻辑模型从中文翻译成物理模型的英文,方便后续的建表。物理模型的列格式要求是 A_B_C,因此需要利用erwin的 tools-names-model naming options-name mapping来生成指定的格式erwin版本 7.3.11需要设置两个属性Entity to Table : %Decl(test,_)%=(test,%Look...
2020-03-09 13:53:31 918 3
原创 python的yield、标准输入输出的使用练习
需求背景是将一个test.txt文档内容转化为html文件需要用到sys.argv,yield,re.sub,标准输入输出用法test.txt内容 Welcome to World Wide Spam, Inc.These are the corporate web pages of *World Wide Spam*, Inc. We hopeyou find your sta...
2020-03-09 12:12:31 455 1
原创 Oracle中关于8k表空间与16k表空间IO性能对比
Oracle中,当执行FTS时,会触发多块读。而在这个情况下,如果单个oracle块越大装载的数据就越多。由此,对比一下8k与16k的性能差别。--设置db_16k_cache_sizealter system set db_16k_cache_size=100M;--创建16k表空间create tablespace tb1 datafile'/u01/app/oracle/...
2019-06-19 09:54:56 1584 1
原创 hive中与oracle一些看上去类似但结果不同的写法总结
1、hive中的date_format与oracle的to_date两个函数都用来将给定字符串转换成指定格式,date_format最终转换成字符串,to_date转成日期。另外to_date中用来指定转换格式的模板yyyymmdd,大写小均可以得到的结果也是一致的select to_date('2019-01-01','yyyy-mm-dd'), to_date('2019-01-01',...
2019-04-22 09:55:14 2378 1
原创 将collect_set改成既排重又排序
collect_set无法满足业务需要,只排重不排序。为了实现又排重又排序,重写了collect_set的底层源码。其实就是把底层的LinkHashSet改成TreeSet。涉及到的类org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCollectSet;org.apache.hadoop.hive.ql.udf.generic.Generi...
2019-04-16 16:03:37 6427 2
原创 hive中关于cube的使用
在hive中也可以使用cube或者roll up的语法示例select rang_age,PRODUCT_TYPE_CH,y,count(*),grouping__idfrom temp_1 twhere t.validate_date_rank=1and PRODUCT_TYPE_CH='意外伤害保险'and rang_age='20-30岁'group by ran...
2019-03-25 11:17:59 5994
原创 hive SMB join 验证实验
关于hive的SMB join 有一些成立的前提条件首先: 两张表是分桶的,在创建表的时候需要指定:CREATETABLE(……) CLUSTERED BY (col_1) SORTED BY (col_1) INTO buckets_Nums BUCKETS其次:两张表分桶的列必须是JOIN KEY最后:需要设置一些bucket相关的参数set hive.auto.conve...
2019-03-12 16:01:54 3490
原创 查看mapreduce程序每个 map task 或者 reduce task 执行时间
以hadoop2.7.5为例有一个mapreduce.jobhistory.webapp.address参数,这个参数配置在 mapred-site.xml文件中<property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop02:19888</va...
2019-02-21 08:35:36 3447
原创 数据仓库系统的数据质量如何保证-简略总结
主要验证的是 完整性,准确性,唯一性,有效性,一致性,时间性 Ods层主要考察完整、有效、时间性 DW层主要考察完整、一致、有效、准确 App层主要考察准确性 问题反映流程 数据核查人员-数据清洗人员-数据开发人员-修复、测试、上线-添加至数据问题库-数据核查人员 数据治理三阶段 被动问题治理阶段 主动...
2019-02-17 08:39:47 5674
原创 Spark on Yarn 搭建及填坑过程
准备 hadoop-2.7.5 spark-2.0.0 scala-2.11.8.tar(Linux环境spark运行所需)及scala-2.11.8.msi(win开发环境所需)这两个要一致 搭建(由于是在个人电脑上作为练习,因此涉及内存大小的地方要根据电脑内存合理设置) hadoop搭建(略) 这块按照其他搭建过程能运行起来就行,下边几个参数需要添加到yarn-site.xm...
2019-02-15 14:46:46 207
转载 Hive的Transform功能(转载)
Hive的TRANSFORM关键字提供了在SQL中调用自写脚本的功能,适合实现Hive中没有的功能又不想写UDF的情况。例如,按日期统计每天出现的uid数,通常用如下的SQLSELECT date, count(uid)FROM xxxGROUP BY date但是,如果我想在reduce阶段对每天的uid形成一个列表,进行排序并输出,这在Hive中没有现成的功能。那么,可以自写脚本...
2019-02-12 15:18:00 3360
原创 dfs.datanode.data.dir(2.x)/dfs.data.dir(1.x)的作用
从官网找到这么一段Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, t...
2019-01-29 18:16:40 1020
原创 TaskTracker/ApplacationMaster在配置有多个 mapred.local.dir/yarn.nodemanager.local-dirs时的选择策略
Task 在运行的过程中中间结果是需要写本地文件 系 统 的,hadoop中就有配置选项 mapred.local.dir(1.X)/yarn.nodemanager.local-dirs (2.X)来配置这个本地文件的写入点,可以有多个写入点,通常如果每个slave上有多个磁 盘 ,分别挂载在 /disk{1..3} 的话,就可以将之配置为:<property> <na...
2019-01-29 18:08:42 584 4
转载 转载MapReduce: 提高MapReduce性能的七点建议
Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没有什么...
2019-01-29 15:46:57 195
转载 转载:HDFS参数配置
配置项 优化原理 推荐值 dfs.namenode.handler.count NameNode中用于处理RPC调用的线程数,默认为10。对于较大的集群和配置较好的服务器,可适当增加这个数值来提升NameNode RPC服务的并发度。 64 dfs.datanod...
2019-01-29 08:54:29 649
转载 Hive on Spark 互相匹配的版本对照表
Hive Version Spark Version 3.0.x 2.3.0 2.3.x 2.0.0 2.2.x 1.6.0 2.1.x 1.6.0 2.0.x 1.5.0 1.2.x 1.3.1 1.1.x 1.2.0
2019-01-22 08:15:02 5759
原创 Hive开窗
练习的时候发现hive也支持开窗函数三个字段的意思:用户名,月份,访问次数 A,2015-01,5A,2015-01,15B,2015-01,5A,2015-01,8B,2015-01,25A,2015-01,5A,2015-02,4A,2015-02,6B,2015-02,10B,2015-02,5A,2015-03,16A,2015-03,22B,2015-0...
2019-01-18 19:37:32 213
转载 Mapper读取多行的思路
map方法默认是一行一行读取文件数据,如果想要改写成一次读多行,自定义思路如下TextInputFormat–》LineRecordReader–》SplitLineReader–》LineReader 转自:https://blog.csdn.net/tanggao1314/article/details/51307642...
2019-01-17 11:47:12 572
原创 Mapper的四个方法
(1) protected void setup(Context context)一般用来加载一些初始化的工作,每个job执行一次protected void setup(Context context) throws IOException,InterruptedException { blacklist=new TreeSet<String>();...
2019-01-17 10:40:54 2561
转载 MapReduce作业提交过程
通过提交jar包,进行MapReduce处理,那么整个运行过程分为五个环节: 1、向client端提交MapReduce job. 2、随后yarn的ResourceManager进行资源的分配. 3、由NodeManager进行加载与监控containers. 4、通过applicationMaster与ResourceManager进行资源的申请及状态的交互,由Node...
2019-01-17 09:57:08 1271
原创 Oracle优化之位图索引
在B树索引中,索引键值与行之间存在一种一对一的关系,一个索引键值引向一行,而在位图索引中,一个索引键值则对应多行,位图索引通常适用于高度重复(相对于很多的行数,列值可能只有几个,列值/行数越接近0则越适合使用位图索引)而且经常只读的列,通常查询这种列返回的数据占比很大,因此也不适合使用B树索引。对比来看,B树索引通常是选择性的,位图索引位通常不是选择性的。位图索引的键值使用0,1存储,相较B...
2019-01-16 20:20:25 222
原创 Oracle优化之B树索引
B树索引目前数据库中最常用的索引,构造类似于二叉树,能根据键值提供一行或一个行集的快速访问,其中的’B’代表平衡, 通常使用在频繁使用查询谓词的列上,一般这类列的选择度都较高。使用场景当我们希望从表中只返回少量的数据(占比很小,这个比例通常经验值是5%,不过根据表的不同也有不用,一个瘦表(通常只有几列)可能在20%-30%,一个胖表(列很多或列很宽)可能在2%-3%)时会使用索引。如下...
2019-01-16 20:19:12 667
原创 Oracle之动态采样
动态取样是为谓词和表/索引统计收集更加精确的信息从而提高服务器性能,信息越精确产生的性能更好。一般发生在生成执行计划阶段。可以使用动态取样的情况: 1.) 在收集的统计不能使用或会导致严重的估计错误时估计单表的谓词选择性; 2.) 估计没有统计的表/索引的统计; 3.) 估计统计过期的表和索引的统计;动态取样特征由参数OPTIMIZER_DYNAMIC_SAMPLI...
2019-01-16 20:16:38 754
原创 Oracle优化之10g的统计信息手动收集方法
10g的统计信息手动收集方法除系统自动收集统计信息外,还可以通过手动调用包来收集统计信息常用的包如下dbms_stats.gather_table_stats();--收集指定表的统计信息常用参数Tabname –表名称Partname—分区名称estimate_percent—统计的样品比例,默认oracle自动选择method_opt –统计方式,默认FOR A...
2019-01-16 20:15:43 1126
原创 Oracle优化之10g的统计信息自动收集策略
Oracle 10g中统计信息默认可以自动收集,由GATHER_STATS_JOB作业收集得到,只有当数据库对象没有统计信息或者统计信息已经过期(Oracle 10G中是否过期的标准是数据库对象被修改的记录行数超过10%,该信息由Modification Monitoring来追踪完成)时才对该对象进行信息统计,该作业在数据库创建或升级时由Scheduler自动创建,这些作业可以从视图DBA_...
2019-01-16 20:14:39 852
原创 Oracle优化之连接方法
nested loop(嵌套循环):存在着两个循环,一个是外部循环,提取驱动表中符合条件的每条记录。另外一个是内部循环,根据外循环中提取的每条记录对内部表进行连接查询相应的记录。由于这两个循环是嵌套进行的,故此种连接方法称为嵌套循环连接。特点:1.一个大表和一个小表(驱动表)连接,连接方式可以是等值或者是不等值2.驱动表数据较小或者内部表已连接的列有唯一性索引或者高度可选的非唯一性...
2019-01-16 20:12:15 1740
原创 Oracle优化之数据块结构
1、基本组成块头:存放一些基本信息,如物理位置,块所属的段类型(数据段、索引段、回滚段等)表目录:如果块中存储的数据为表数据,则表目录中保存这个表的相关信息行目录:如果块中存储的数据为表数据,则行目录中保存数据行的相关信息。行记录:真正存放数据的区域,这部分空间已被使用。自由空间:未使用的区域,用于新行的插入或者已经存在行的更新。2、自由空间(free spac...
2019-01-16 20:07:37 728
原创 关于org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z问题的解决
运行MR程序的时候出现这个异常Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 解决方案将类 org.apache.hadoop.io.nativeio.Nati...
2019-01-16 19:33:15 559
转载 Hadoop 两种环境下的checkpoint机制
1 伪分布式环境hadoop伪分布式checkpoint机制2 HA环境checkpoint机制配置了HA的HDFS中,有active和standby namenode两个namenode节点。他们的内存中保存了一样的集群元数据信息,因为standby namenode已经将集群状态存储在内存中了,所以创建检查点checkpoint的过程只需要从内存中生成新的fsimage。详细过程如...
2019-01-16 08:57:44 1191
原创 用crontab设置hive脚本的自动执行及shell 127返回码的解决
测试用crontab设置一段hive ETL脚本的自动执行,期间遇到了一个问题设置好的脚本01.sh在命令行模式下 ./01.sh 可以执行,但是配置到crontab中就返回127码,hive后的任何命令都不执行查看了其他网友贡献的解决方案,终于搞定。解释一下127码:127码代表未找到命令,0代表成功执行。所以我这里返回127说明crontab在执行01.sh时找不到hive...
2018-12-30 18:22:06 1558
原创 Hive配置Oracle作为元数据库
oracle驱动包下载https://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html配置$HIVE_HOME/conf/hive_site.xml(需要自己创建)configuration> <property> <name>javax.j...
2018-12-16 12:12:48 2349
原创 OEL6.5+11GR2安装(超级详细版)
安装前的规划 安装介质 配置 虚拟机(Vmware Workstation 10) 连接方式 Host-Only(仅主机) NAT(网络地址转换):主机生成虚拟网卡VMnet8用于与虚拟机通信,虚拟机IP地址与主机虚拟网卡在同一网段。通过NAT服务器虚拟机可直接联网。 birdged(桥接):虚拟机可认为是...
2018-12-09 20:17:05 1454
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人