infiniDB在linux下完成倒库
在网看到自己的文章被四处烂用,经常搜到自己的文章。关键是,你能把我头像删除了不,有本事,你
把网址也给出http://blog.csdn.net/longshenlmj/article/details/17920621
infiniDB列式数据库,查询速度快。但维护速度慢,增删改 特别慢,不适合大数据量操作。
在mysql,大数据量查询慢,但维度快(增删改快)。
方案,mysql下,入库每天的数据,按天处理和维护数据。导入infiniDB
一,连接数据库:Navicat连接。建立mysql和infiniDB的数据表结构。
mysql数据由kettle导入,并完成相关逻辑处理,如去重,去空等(复杂按经验分析)。
二,本机mysql倒出表
用kettle设计一个自动化部署,将mysql数据表导出成tbl格式文件。网上有Smoodo @ freenode.net ##pentaho做的,infiniDB export.kjb, 完成相关设置即可。
三,infiniDB倒入数据库,运行infiniDB的提供的开源shell脚本,自动导入。(如果infiniDB是utf8编码,要将tbl文件转化成utf8字符编码,否则入infiniDB会出现乱码。)
1,windows下编写的shell脚本,放到linux下不能运行,要用dos2unix命令转化。因为末尾的回车换行符不一样,判断用vim看,:%!xxd 查看十六进制是否出现0a0d,对应为"."。
2,在linux上,将所有的数据文件(.tbl文件)放到固定的/usr/local/Calpont/data/bulk/data/import路径下。infiniDB的处理路径是固定,暂时还不支持修改(只能将data1文件考到别的地方,用alias的方式访问)
注意,kette导出的tbl表,默认是用|作为delimiter。如果你的数据中包含|字符,就会出现错行。先go through 文件内容,确定文件中不包含该delimiter,否则就要更换,配合hive首选"\t"。
3,infiniDB倒库的shell脚本,放在/usr/local/Calpont/data/bulk/data/import路径下。基本内容如下:
cd /usr/local/Calpont/data/bulk/data/import;
/usr/local/Calpont/bin/colxml aso1 -t dimAppNameNew -d "\t" -j 1
/usr/local/Calpont/bin/cpimport -j 1
(1)区分大小写,没-l,默认找dimAppNameNew.tbl。-d "\t"是delimiter改成tab。
(2)一个shell脚本重复执行,会重复插入。只能执行一次。
(3)双引号无影响:/usr/local/Calpont/bin/colxml aso1 -t "dimAppNameNew" -l "dimappnamenew.tbl" -d "\t" -j 1 ,也能正确执行。
(4)shell脚本在不同路径下也能执行。前面的cd是为了让当前路径固定在指定路径下,修改后无影响,所以目前作用不清楚。(好像colxml会默认去找import路径下的文件,没时间去认证了。估计该也是该colxml文件里的配置参数)
(5)shell脚本按-j的配置生成job文件,在/usr/local/Calpont/data/bulk/job下。-j是设置对应的job数,cpimport会完成指定的job,导入。
(6)colxml或者cpimport 加-h可以查看参数信息:
/usr/local/Calpont/bin/colxml -h
显示如下
Usage: colxml [options] dbName
Options:
-d delimiter (default '|')
-e max error rows (numeric)
-h Print this message
-j Job id (numeric)
-l load file name
-n "name in quotes"
-p path for XML job description file that is generated
-s "description in quotes"
-t table name
-u user
-r Number of read buffers (numeric)
-c Read buffer size (numeric)
-w Write buffer size (numeric)
-x Extension of file name (default ".tbl")
-E EnclosedByChar (if data has enclosed values)
-C EscapeChar
-b debug level (1-3)
dbName - Required parm specifying the name of the database;
all others are optional
Example:
colxml -t lineitem -j 123 tpch
如具体的例子:
/usr/local/Calpont/bin/colxml ssp_bi_cloud_saiku -x tbl -d "\t" -l "dimAd.tbl" -j 1
/usr/local/Calpont/bin/colxml ssp_bi_cloud_saiku -t dimad -x tbl -d "\t" -l "dimAd.tbl" -j 1
/usr/local/Calpont/bin/colxml ssp_bi_cloud_saiku -d "\t" dimad -j 1
最后,saiku连接:xml文件已建好,在linux下,放到saiku的安装目录下,看是否连接成功,能否使用。
datasorces 里面的设置名称可以使用字母数字下划线。名字设置时随便无影响,但引用时要正确。、
每个文件文件只包含一个配置(下面会覆盖上面的)
myblog:http://blog.csdn.net/longshenlmj/article/details/17920621
infiniDB在linux下完成倒库的更多相关文章
- linux下安装uuid库
1.linux 下安装UUID库 1.1)ubuntu下安装uuid链接库 sudo apt-get install uuid-dev 1.2)CentOS yum install libuuid-d ...
- linux下so动态库一些不为人知的秘密(转)
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名.二者都使用广泛.本文主要讲动态库方面知识.基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库, ...
- linux下so动态库一些不为人知的秘密
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名.二者都使用广泛.本文主要讲动态库方面知识. 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些 ...
- linux下so动态库一些不为人知的秘密(中二)
继续上一篇< linux下so动态库一些不为人知的秘密(中) >介绍so搜索路径,还有一个类似于-path,叫LD_RUN_PATH环境变量, 它也是把路径编译进可执行文件内,不同的是它只 ...
- linux下so动态库一些不为人知的秘密(中)
上一篇(linux下so动态库一些不为人知的秘密(上))介绍了linux下so一些依赖问题,本篇将介绍linux的so路径搜索问题. 我们知道linux链接so有两种途径:显示和隐式.所谓显示就是程序 ...
- linux下so动态库一些不为人知的秘密(上)
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名.二者都使用广泛.本文主要讲动态库方面知识. 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使 ...
- 如何在Linux下添加函数库
如何为Linux增加库一. 静态库在Linux下的静态库是以.a为后缀的文件.1. 建静态库h1.c 源文件#include<stdio.h>void hello1(){printf(“t ...
- linux下的静态库和动态库
一.linux下的静态库 静态库中的被调用的函数的代码会在编译时一起被复制到可执行文件中去的!!可执行文件在运行不需要静态库的存在! 二.linux下动态库的构建和使用 1.动态库的构建 ...
- linux下的静态库和共享库
转载&&增加: 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期 ...
随机推荐
- ROS(indigo) turtlebot2 + android一些有趣应用
ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtle ...
- EBS业务学习之应付管理
应付款系统是供应链管理的最后一个环节,它使公司能够支付供应商提供的货物和服务的费用.供应链管理的目标是保持低库存量但又有充足的存货以满足要求,仓库中的库存就等于钱,因此,应付款管理的目标是尽可能地推迟 ...
- 与markdown的第一次接触
什么是markdown markdown是一种比html轻量级的标记语言. markdown的介绍与学习请参考:markdown认识与入门 CSDN Markdown博客视频教程 知乎: 怎样引导新手 ...
- Dynamics CRM2016 新功能之Solution enhancements
CRM2016中对解决方案的功能有了一定的加强,CRM自2011版本开始引入了solution的概念,但大家的共识是solution的导出导入以及发布都非常的慢,常常会出现发布超时的情况很是头疼. 以 ...
- socket系列之socket服务端与客户端如何通信
上面已经分别介绍了ServerSocket跟Socket的工作步骤,并且从应用层往系统底层剖析其运作原理,我们清楚了他们各自的一块,现在我们将把他们结合起来,看看他们是如何通信的,并详细讨论一下他们之 ...
- ROS讲座 关于ROS2和Gazebo C++ in Open Source Robotics
分享一个不错的介绍ROS2和Gazebo的视频讲座. Gazebo中的云彩飘动起来了!!!! 超清视频分享网址: http://v.youku.com/v_show/id_XMTcyMzY0Nz ...
- 高通msm8994性能及温度监测脚本
[plain] view plain copystartTime=$(date +%Y-%m-%d-%H-%M-%S) pathName="/data/cpu_logs" fi ...
- Android初级教程:屏幕分辨率
在app编码中经常需要获取手机的屏幕分辨率(宽*高),原来我直接上网拷贝代码,但在使用过程中却发现诸多不便. 不便一:下面代码中的getWidth和getHeight在adt上提示deprecated ...
- iPhone全部设备分辨率速查
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=505 因为常用cocos2dx开 ...