Vertica 项目常用代码

时间:2022-10-25 08:48:19

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 项目常用代码的更多相关文章

  1. 项目常用jquery&sol;easyui函数小结

    #项目常用jquery/easyui函数小结 ##背景 项目中经常需要使用到一些功能,封装.重构.整理后形成代码沉淀,在此进行分享 ##代码 ```javascript /** * @author g ...

  2. Java常用代码段 - 未完待续

    记录一些自己写项目常用的代码段. 格式化常用日期格式 Date date = new Date(System.currentTimeMillis()); DateFormat d3 = DateFor ...

  3. 单元测试系列之十:Sonar 常用代码规则整理&lpar;二&rpar;

    摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...

  4. 单元测试系列之九:Sonar 常用代码规则整理(一)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...

  5. 程序员必须知道的HTML常用代码有哪些?

    HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...

  6. css常用代码大全以及css兼容(转载)

    css常见的快捷开发代码汇总(长期更新),包括CSS3代码,有一些css效果很顽固,经常会一时找不出解决方案,网络上也有很多的工具和高手提供了具体的浏览器兼容代码,这个页面我今后会经常整理,希望能够帮 ...

  7. css常用代码大全

    css常用代码大全,html+css代码 html+css可以很方便的进行网页的排版布局,还能减少很多不必要的代码. 一.文本设置1.font-size: 字号参数 2.font-style: 字体格 ...

  8. 【转载】GitHub 标星 1&period;2w&plus;,超全 Python 常用代码合集,值得收藏!

    本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...

  9. git常用代码合集

    git常用代码合集 1. Git init:初始化一个仓库 2. Git add 文件名称:添加文件到Git暂存区 3. Git commit -m “message”:将Git暂存区的代码提交到Gi ...

随机推荐

  1. ASP&period;net的指令

    3.2 ASP.NET指令 在基于面向对象思想的.NET平台,可以称之为“万物皆对象”了.在这里,一个页面,一个用户控件,一个母版页等,全都是对象,全都有各自的属性. 在类文件里,我们表示类的属性可以 ...

  2. IntelliJ&lowbar;13书签

    一.书签视图   二.使用方法 1.添加书签:Ctrl+Shift+数字 2.跳转到书签:Ctrl+数字 来自为知笔记(Wiz)

  3. Windows下Git安装指南

    参考<Git权威指南>安装整理,图书配套网址参见[1] 1. Cygwin下安装配置Git 1. 在Windows下安装配置Git有2种不同的方案 (1)msysGit, (2)Cygwi ...

  4. ftp命令和scp命令

    ftp命令: 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件的拷贝读取和下载. 1. 连接ftp服务器  格式:ftp [hostname| ip-ad ...

  5. Laravel5&period;5核心架构理解

    1.依赖注入 方法传入组件名,框架会自动实例化,方法内可直接使用 例如最常用的requert对象 2.服务容器 其实,Laravel 的核心就是一个 IoC 容器,Laravel 的核心本身十分轻量, ...

  6. Arduino-汉王PM2&period;5检测模组B1

    汉王PM2.5检测模组B1,接入Arduino,使用I2C1602显示屏显示 #include <Arduino.h> #include <Wire.h> #include & ...

  7. 奇怪吸引子---Coullet

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  8. Windows系统下运行某些程序时缺少&OpenCurlyDoubleQuote;Msflxgrd&period;ocx”的解决方法

    出现这样的错误就是系统缺少相应的库文件,我们安装即可. 下载Msflxgrd.ocx,这里提供一个下载网址:https://www.ocxme.com/files/msflxgrd_ocx 64位系统 ...

  9. cordova 常用插件

    一,插件相关常用命令   1,查看所有已经安装的插件 1 cordova plugin ls 2,安装插件(以camera插件为例) 1 cordova plugin add cordova-plug ...

  10. &lbrack;MySQL&rsqb; MySQL中关于外键报错的解决和建议

    一.缘由 今天在恢复从库和主库不同步的数据时,看到关于外键的报错. ERROR 1451 (23000): Connot delete or update a parent row: a foreig ...