Vertica 项目常用代码
1.查看目录下面有多少文件数
ls -l |grep "^-"|wc -l
思路很明显了,ls后通过grep进行过滤判断是文件还是文件夹,
如果是判断文件夹,可以使用ls -l |grep "^d"|wc -l
2.copy命令连接数据库 并分批导入文件到数据库中
下面是我的示例代码,可以分批把数据导入到数据库中.同时捕获错误的信息与错误的记录.
date
totalcount=1315890897;
onetimecount=100000000;
for (( c=1100000001; c<$totalcount; c=c+$onetimecount))
do
date;
sdate=`date +%y%m%d%H%M%S`
echo "$c rows";
cat /CLQR/Factory/FlowTest/Cimation/outbound/201401/part-r-00000 | tail -n+$c | head -$onetimecount |/opt/vertica/bin/vsql -h yourhostname -d yourdbname -U accountname -w your\!password -c "copy clqr_az.STG_INKJET_TEST_DATA201401 from local stdin direct no escape null as '\N' DELIMITER E'\002' REJECTED DATA '201401_excpata_$sdate.txt' exceptions '201401$sdate.err' ";
date;
done;
使用copy的时候,需要注意的两点是,如果你的列分隔符 有问题,譬如说有些列内部有列分隔符 本身,这样就会造成找到的列比表本身多,会有问题.
如果你的行分隔符有问题,默认是\n,就会找到的列比设计的列少,都会被拒绝载入的.
我们可以加上exception选项和rejected data选项捕获这些错误的信息与错误的数据,以方便查找原因.
我的项目中出现过类似的问题,我的解决方案是使用不可见字符譬如\001与\002分别做列与列的分隔符 .
注意:如果你的密码中含有特殊字符,譬如说!之类的,是需要进行转义的 加上\
3.
vertica优化代码
--optimize
select dbd_create_workspace('Test')
select dbd_create_design('Test','Test');
select dbd_add_design_tables('Test','clqr_az.STG_INKJET_TEST_DATA');
select dbd_populate_design('Test','Test');
--Execute
select dbd_create_deployment('Test', 'Test');
select dbd_add_deployment_design('Test', 'Test', 'Test');
select dbd_add_deployment_drop('Test', 'Test');
select dbd_execute_deployment('Test', 'Test');
--Cleanup
select dbd_drop_deployment('Test', 'Test');
select dbd_remove_design('Test', 'Test');
select dbd_drop_design('Test', 'Test');
select dbd_drop_workspace('Test');
当然你也可以手动去启动database desinger.然后针对特定的query设计projections.
4.
给表重命名的步骤:
Alter table schemaname.tablename rename to newtablenamewithoutschema ;
select analyze_statistics ('schema.tablename');
select refresh ('schema.tablename');
这样也会保持projection的数据up to date.
5.如何查看被删除的数据
可以使用at epoch 或 at timestamp 'sometime'之类的查询.
可以在select语句之前加上 at epoch latest来读取当前时间的记录,类似于sqlserver中的snapshot.
这样不阻塞其他进程写数据.
在 Merge ,INSERT 后面加入/*direct*/,可以防止WOS full之类的错误,大数据时直接写入ROS.
有时候表join会把内存爆掉,可以加入: /*+set_vertica_options(EE, ENABLE_JOIN_SPILL)*/
允许其外部排序.
6.创建projections
一开始我们并不太熟悉如何创建合适的projections,推荐使用database desinger自动生成,然后学习这个生成的规则,我使用的感觉就是非常像使用sqlserver或其他关系数据库系统中的覆盖索引(视图).
但是它往往需要你创建一个buddy projections.
下面是一个示例:
CREATE PROJECTION TableName_DBD_2_seg_evan_dbd_b0 /*+basename(TableName_DBD_2_seg_evan_dbd),createtype(D)*/ ( Test_Step_Fact_Key ENCODING DELTARANGE_COMP, Serial_Number ENCODING AUTO, Test_Run_Number ENCODING COMMONDELTA_COMP, Project_Name ENCODING RLE, Sequence_Name ENCODING RLE, Step_Start_Local_Timestamp ENCODING COMMONDELTA_COMP, Step_Start_UTC_Timestamp ENCODING COMMONDELTA_COMP, Step_Start_Local_Day_Dimension_Key ENCODING COMMONDELTA_COMP, Step_Number ENCODING BLOCKDICT_COMP, Manufacturer_Site_Key ENCODING RLE ) AS SELECT Test_Step_Fact_Key, Serial_Number, Test_Run_Number, Project_Name, Sequence_Name, Step_Start_Local_Timestamp, Step_Start_UTC_Timestamp, Step_Start_Local_Day_Dimension_Key, Step_Number, Manufacturer_Site_Key FROM TableName ORDER BY Manufacturer_Site_Key, Project_Name, Sequence_Name, Serial_Number SEGMENTED BY MODULARHASH (Serial_Number, Project_Name, Sequence_Name, Manufacturer_Site_Key) ALL NODES OFFSET 0; CREATE PROJECTION TableName_DBD_2_seg_evan_dbd_b1 /*+basename(TableName_DBD_2_seg_evan_dbd),createtype(D)*/ ( Test_Step_Fact_Key ENCODING DELTARANGE_COMP, Serial_Number ENCODING AUTO, Test_Run_Number ENCODING COMMONDELTA_COMP, Project_Name ENCODING RLE, Sequence_Name ENCODING RLE, Step_Start_Local_Timestamp ENCODING COMMONDELTA_COMP, Step_Start_UTC_Timestamp ENCODING COMMONDELTA_COMP, Step_Start_Local_Day_Dimension_Key ENCODING COMMONDELTA_COMP, Step_Number ENCODING BLOCKDICT_COMP, Manufacturer_Site_Key ENCODING RLE ) AS SELECT Test_Step_Fact_Key, Serial_Number, Test_Run_Number, Project_Name, Sequence_Name, Step_Start_Local_Timestamp, Step_Start_UTC_Timestamp, Step_Start_Local_Day_Dimension_Key, Step_Number, Manufacturer_Site_Key FROM TableName ORDER BY Manufacturer_Site_Key, Project_Name, Sequence_Name, Serial_Number SEGMENTED BY MODULARHASH (Serial_Number, Project_Name, Sequence_Name, Manufacturer_Site_Key) ALL NODES OFFSET 1;
View Code
Vertica 项目常用代码的更多相关文章
- 项目常用jquery/easyui函数小结
#项目常用jquery/easyui函数小结 ##背景 项目中经常需要使用到一些功能,封装.重构.整理后形成代码沉淀,在此进行分享 ##代码 ```javascript /** * @author g ...
- Java常用代码段 - 未完待续
记录一些自己写项目常用的代码段. 格式化常用日期格式 Date date = new Date(System.currentTimeMillis()); DateFormat d3 = DateFor ...
- 单元测试系列之十:Sonar 常用代码规则整理(二)
摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...
- 单元测试系列之九:Sonar 常用代码规则整理(一)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...
- 程序员必须知道的HTML常用代码有哪些?
HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...
- css常用代码大全以及css兼容(转载)
css常见的快捷开发代码汇总(长期更新),包括CSS3代码,有一些css效果很顽固,经常会一时找不出解决方案,网络上也有很多的工具和高手提供了具体的浏览器兼容代码,这个页面我今后会经常整理,希望能够帮 ...
- css常用代码大全
css常用代码大全,html+css代码 html+css可以很方便的进行网页的排版布局,还能减少很多不必要的代码. 一.文本设置1.font-size: 字号参数 2.font-style: 字体格 ...
- 【转载】GitHub 标星 1.2w+,超全 Python 常用代码合集,值得收藏!
本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...
- git常用代码合集
git常用代码合集 1. Git init:初始化一个仓库 2. Git add 文件名称:添加文件到Git暂存区 3. Git commit -m “message”:将Git暂存区的代码提交到Gi ...
随机推荐
- 【Bootstrap基础学习】05 Bootstrap学习总结
好吧,Copy了几天,这个总结算是把我对Bootstrap的一些理解写一下吧. Bootstrap只是一套别人写好的前端框架,直接拿来用就好. 不过对于专业的前端而言,如果不去把所有的代码都看一遍来理 ...
- innerHTML和outerHTML有什么区别
一.区别:1)innerHTML: 从对象的起始位置到终止位置的全部内容,不包括Html标签.2)outerHTML: 除了包含innerHTML的全部内容外, 还包含对象标签本身. 二.例子1: & ...
- 彻底卸载JDK的-并只依赖配置环境安装JDK(不依赖注册表)-解决Error opening registry key'software\Javasoft\Java Runti问题
一.备份安装好的绿色版JDK a.重新安装JDK到任意目录,假设这个目录是C:\java.b.将装好的JDK,JRE拷贝到任意一个其他目录,如D:\bak,这样做的目的主要是为了备份JDK.(建议打成 ...
- Verilog学习笔记基本语法篇(十)········ 常用系统函数
$display 和 $write 任务 格式: $display (p1,p2,...,pn); $write (p1,p2,..,pn); 这两个函数和系统的任务作用是用来输出信息,即将参数p2到 ...
- 想当站长请立即使用Orchard
其实早在很多年前我就一直有一个梦想,那就是那个网站当个站长,和各位有共同爱好的人成为朋友,很多年了虽然有了这个能力却没有了这个心情,成为了程序员却天天被程序玩. 最近几年一直从事C#方面的软件开发,基 ...
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs 前端主体结构(五)
目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 6 Angularjs 前端主体结构 6.1 A ...
- SQL数据库基础(一)
数据库: 结构化查询语言(Structured Query Language)简称SQL: 数据库管理系统(Database Management System)简称DBMS: 数据库管理员(Data ...
- AT NEW F、AT END OF F注意事项
1.F只能是内表的第一个字段 2.AT NEW F.AT END OF F使用F之后内表内容会变为* 解决出现*的办法: FIELD-SYMBOLS:<ITAB> LIKE ITAB L ...
- MySQL数据库的基本数据类型
整数类型 数值型数据类型主要用来存储数字,包含的类型有: TINYINT.SMALLINT.MEDIUMINT. INT(INTEGER). BIGINT. 下面通过一个例子来查看各种类型的所占有的数 ...
- App开发流程之配置Info.plist文件
Info.plist文件控制应用的全局配置,例如bundle name,display name. 先来看一下默认创建的Info.plist文件 右键左侧的Info.plist文件,可以open as ...