zoukankan      html  css  js  c++  java
  • 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首选" "。

     

    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 " " -j 1


    /usr/local/Calpont/bin/cpimport -j 1

    (1)区分大小写,没-l,默认找dimAppNameNew.tbl。-d " "是delimiter改成tab。

    (2)一个shell脚本重复执行,会重复插入。只能执行一次。

    (3)双引号无影响:/usr/local/Calpont/bin/colxml aso1 -t "dimAppNameNew" -l "dimappnamenew.tbl" -d " " -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 " " -l "dimAd.tbl" -j 1

    /usr/local/Calpont/bin/colxml ssp_bi_cloud_saiku -t dimad -x tbl -d " " -l "dimAd.tbl" -j 1

    /usr/local/Calpont/bin/colxml ssp_bi_cloud_saiku -d " " dimad -j 1

    最后,saiku连接:xml文件已建好,在linux下,放到saiku的安装目录下,看是否连接成功,能否使用。

          datasorces 里面的设置名称可以使用字母数字下划线。名字设置时随便无影响,但引用时要正确。、

      每个文件文件只包含一个配置(下面会覆盖上面的)

    myblog:http://blog.csdn.net/longshenlmj/article/details/17920621

  • 相关阅读:
    用户控件被添加到容器的整个处理过程
    c#项目后期生成事件命令行常用命令
    Sass 系统知识
    非 root 用户
    Linux 系统版本查看
    Docker Swarm
    Docker Compose
    Linux RocketMQ双主双从,Centos7 RocketMQ4集群(双主双从)
    Linux RocketMQ安装配置和使用,Centos7 RocketMQ4安装配置
    Springboot Logback日志使用,Springboot Logback详细配置和日志分割
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205513.html
Copyright © 2011-2022 走看看