文档章节

DW(Columnstore)

赵-猛
 赵-猛
发布于 2017/01/06 16:46
字数 1262
阅读 48
收藏 0

mysql/mariadb<oltp> as olap:
      缺少hash join和parallel
      复杂的SQL查询,只会有一个CPU正在满负荷地运转
      方案选型了以后,只能做更多的优化
        尽量使用主键查询
        选择索引的字段,一定要符合差异率高的字段
        在group by后面使用order by null,禁用默认的group by排序
        手动拆分SQL,再合并结果集
        my.cnf配置优化,增加临时表空间和key_buffer_size

mariadb columnstore (InfiniDB olap store engine)
    大数据离线分析
    大规模分布式并行(MPP架构)
    高性能
    压缩
    列式
  (对比非开源mysql数据仓库系统Infobright)

columnstore:三层架构
      用户模块 User Module:Execution Manager/DMLProc/DDLProc
      性能模块 Performance Module:n*Performance Module
      数据存储层 Data Storage: 本地磁盘(local disks)/共享存储(SAN)/分布式存储(EBS/HDFS/GlusterFS)

columnstore docker install(基于centos的docker):
      git clone https://github.com/mariadb-corporation/mariadb-columnstore-docker.git
      cd mariadb-columnstore-docker
      docker build -t david:mcs .
      docker run -d -p 4306:3306 -v /home/david/dev/dbt3:/mnt/dbt3 --name mcs david:mcs

      execute mcsadmin or mcsimport:docker exec -it mcs bash
      mcsadmin getsystemstatus
      ...

      docker stop mcs
      docker start mcs
      docker rm -v mcs
      docker rmi david:mcs

columnstore vagrant install(基于centos的vm):
    #安装virtualbox
      note:disable SecureBoot when boot linux
      sudo apt-get install linux-headers-`uname -r`
      sudo apt-get install virtualbox
      sudo apt-get install dkms
      sudo dpkg-reconfigure virtualbox-dkms
      sudo dpkg-reconfigure virtualbox
      (sudo modprobe vboxdrv)
      (sudo /etc/init.d/vboxdrv setup)
      (sudo cp vboxdrv.ko /lib/modules/)
      (make sure SecureBoot is disabled:sudo mokutil --sb-state)

      vagrant plugin install vagrant-libvirt
      vagrant plugin install vagrant-vbguest

      #下载vagrant配置
      git clone https://github.com/mariadb-corporation/mariadb-columnstore-vagrant.git
      cd mariadb-columnstore-vagrant
      vagrant status
      download mariadb-cs-centos-7 and unzip to columnstore

      #启动虚拟机
      (box urls:http://www.vagrantbox.es/)
      vagrant box list

 vagrant box add centos/7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box --provider=virtualbox
      vagrant up --provider=virtualbox
      (vagrant halt)
      (vagrant suspend)
      (vagrant resume)
      (vagrant reload)
      (vagrant ssh)
      (vagrant destroy)

      #连接mcs
      vagrant ssh
      sudo su -
      mcsadmin
 

columnstore:os准备和dw安装(ubuntu14不支持,未验证)
      vi /etc/hosts
      公私钥认证,打通SSH无密码
      关闭IPTABLES防火墙/关闭SELINUX:vi /etc/selinux/config
      关闭文件系统访问时间和更改磁盘IO算法:vi /etc/fstab; echo "deadline" >   /sys/block/sdb/queue/scheduler
      优化Linux系统内核: vi /etc/sysctl.conf
      调整文件描述符ulimit为65535:vi /etc/security/limits.conf;
      关闭NUMA:vi /etc/grub.conf
      安装jemalloc内存管理器(类似malloc,tcmalloc):jemalloc*
      重启服务器:reboot

      安装boost软件包:
        wget   http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz
        tar zxvf boost_1_55_0.tar.gz
        cd boost_1_55_0
        ./bootstrap.sh   --with-libraries=atomic,date_time,exception,filesystem,iostreams,locale,program_options,regex,signals,system,test,thread,timer,log   --prefix=/usr
        ./b2 install

      安装Perl依赖包:
        expect perl perl-DBI openssl zlib perl-DBD-MySQL

      安装mariadb:
        cd /root/
        wget https://downloads.mariadb.com/enterprise/dapw-ktc5/mariadb-columnstore/1.0.6/centos/x86_64/6/mariadb-columnstore-1.0.6-1-centos6.x86_64.bin.tar.gz
        tar zxvf   mariadb-columnstore-1.0.6-1-centos6.x86_64.bin.tar.gz -C /usr/local/
        /usr/local/mariadb/columnstore/bin/postConfigure


      Report Tool:
       /usr/local/mariadb/columnstore/bin/columnstoreSupport -a
       /usr/local/mariadb/columnstore/bin/columnstoreSupport -a -p 'password'

      Troubleshooting工具:
        /usr/local/mariadb/columnstore/bin/editem
          /usr/local/mariadb/columnstore/bin/clearshm
          /usr/local/mariadb/columnstore/bin/configxml.sh
          /usr/local/mariadb/columnstore/bin/dbrmctl
          /usr/local/mariadb/columnstore/bin/viewtablelock
          /usr/local/mariadb/columnstore/bin/cleartablelock


      管理mariadb:
        mcsadmin getSystemStatus
        (cat /root/.bashrc
            alias mcsmysql='/usr/local/mariadb/columnstore/mysql/bin/mysql   --defaults-file=/usr/local/mariadb/columnstore/mysql/my.cnf -u root'
            alias ma=/usr/local/mariadb/columnstore/bin/mcsadmin
            alias mcsadmin=/usr/local/mariadb/columnstore/bin/mcsadmin
            alias home='cd /usr/local/mariadb/columnstore'
            alias log='cd /var/log/mariadb/columnstore/'
            alias core='cd /var/log/mariadb/columnstore/corefiles'
            alias tmsg='tail -f /var/log/messages'
            alias tdebug='tail -f   /var/log/mariadb/columnstore/debug.log'
            alias tinfo='tail -f   /var/log/mariadb/columnstore/info.log'
            alias dbrm='cd   /usr/local/mariadb/columnstore/data1/systemFiles/dbrm'
            alias module='cat   /usr/local/mariadb/columnstore/local/module'
        or
        /usr/local/mariadb/columnstore/bin/columnstoreAlias
        )

        mcsadmin assignPmDBRootConfig 3 pm

        mcsadmin addModule pm2 host1 mypwd
        mcsadmin alterSystem-enableModule pm2
        mcsadmin adddbroot 1
        mcsadmin assigndbrootpmconfig 2 pm2
        mcsadmin startSystem

        mcsadmin addModule um2 host1
        mcsadmin alterSystem-enableModule um2

        mcsadmin removeModule pm2
        mcsadmin removeModule um2

        mcsadmin stopSystem
        mcsadmin startSystem
        mcsadmin restartSystem
        mcsadmin shutdownSystem

        mcsadmin alterSystem-disablemodule pm2,pm3
        mcsadmin alterSystem-enablemodule pm2,pm3
        switchParentOAMModule pm3

        mcsadmin getActiveSQLStatements
        mcsadmin getModuleConfig
        mcsadmin getSoftwareInfo
        mcsadmin getStorageConfig
        mcsadmin getSystemInfo
        mcsadmin getSystemNetworkConfig
        mcsadmin getSystemResourceUsage
        mcsadmin getProcessStatus
        setSystemConfig ExternalMajorThreshold 80

    操作数据库:
      mcsmysql -p'password' db_name


      数据导入mariadb:
        从其他mysql导出:
          select * from sbtest into outfile '/tmp/sbtest.txt'   FIELDS TERMINATED BY ','
          OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\n';
          #FIELDS TERMINATED BY ',' --字段的结束符
          #OPTIONALLY ENCLOSED BY '"' --字符串的分割符
          #LINES TERMINATED BY '\n' --行的结束符
        导入mcs:
          load data infile '/tmp/sbtest.txt' into table sbtest   FIELDS TERMINATED BY ','  OPTIONALLY   ENCLOSED BY '"'  LINES TERMINATED   BY '\n';

          /usr/local/mariadb/columnstore/bin/cpimport  test    sbtest    /root/tmp/sbtest.txt  -E   '"'  -s ','
          #test是数据库
          #sbtest是表
          #-E是字符串的分割符
          #-s是字段的结束符

      mariadb数据分析:
          mcsmysql test

      mariadb参数调优:
        /usr/local/mariadb/columnstore/etc/Columnstore.xml
        (columnstore不支持主键、索引、timestamp、collate用法、char\varchar类型的sum/average用法)

      mariadb基准测试:
        InfiniDB比InnoDB建表速度慢,语法定制。
        InfiniDB比InnoDB增加列快100倍
        InfiniDB比InnoDB百列字段千万级数据插入快4倍
        InfiniDB比InnoDB百列字段千万级空间少20%
        InfiniDB比InnoDB百列字段千万级查询快100倍
        InfiniDB比InnoDB亿级插入快3倍
        InfiniDB比InnoDB亿级数据空间少50%
        InfiniDB比InnoDB亿级数据查询快150倍
        基于成熟MySQL协议,Tableau可以使用

      mariadb日志:
        /var/log/mariadb/columnstore/*.log

      mariadb扩从节点:
        未知

      其他暂时未知
 

© 著作权归作者所有

共有 人打赏支持
上一篇: Logstash(Conf)
下一篇: OLAP(Application)
赵-猛
粉丝 6
博文 760
码字总数 462089
作品 0
深圳
技术主管
私信 提问
MariaDB ColumnStore一些限制和BUG总结

字段属性限制 1、不支持CHARACTER SET语法 MariaDB [test]> create table t1(id int,name varchar(10) CHARACTER SET utf8) -> engine=Columnstore; ERROR 1178 (42000): The storage engin......

hcymysql
2017/11/09
0
0
MariaDB ColumnStore在OLAP离线分析中的实践与应用(附脚本)

作者介绍 贺春旸,《MySQL 管理之道:性能调优、高可用与监控》第一、二版一书作者,从事数据库管理工作多年,曾经任职于中国移动飞信,安卓机锋网,凡普金科(爱钱进),致力于MariaDB、Mongo...

贺春旸
2017/12/13
0
0
MariaDB Columnstore 1.0.6 GA 发布

昨天(2016.12.14),MariaDB 正式发布了 MariaDB Columnstore 1.0 版本。MariaDB ColumnStore 是一个大规模并行分布式数据引擎,用于大数据的强大分析。 10 月 26 日,MariaDB Columnstore...

局长
2016/12/15
1K
1
MariaDB ColumnStore初探(1):安装、使用及测试

作者介绍 相信大家在对接BI数据报表部门有很深刻的体验,高大上的复杂SQL关联JOIN十几张表在InnoDB里跑起来,会让你酸爽到死。它的出现正是解决这个问题,DBA能不能轻松愉快地玩耍,就要靠它...

贺春旸
2016/12/22
0
0
SQL Server 2012 ColumnStore索引测试

主要是和普通的索引进行对比: /** 准备数据 / select into ColumnStoreTest from northwind..orders declare @i int set @i = 12 while(@i > 0) begin insert into ColumnStoreTest select......

技术小胖子
2017/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

设计一个可拔插的 IOC 容器

前言 磨了许久,借助最近的一次通宵上线 cicada 终于更新了 v2.0.0 版本。 之所以大的版本号变为 2,确实是向下不兼容了;主要表现为: 修复了几个反馈的 bug。 灵活的路由方式。 可拔插的 ...

crossoverJie
13分钟前
1
0
Apache和PHP结合,httpd的虚拟主机配置

httpd配置支持php 上次安装httpd2.4对应的配置文件:/usr/local/apache2.4/conf/httpd.conf 编辑配置文件,修改以下4个地方 ServerName Require all denied AddType application/x-httpd-ph...

野雪球
27分钟前
1
0
数据解析之XPath & lxml库

XPath 定义 即XML路径语言(XML Path Language),是一种用来确定XML文档中某部分位置的语言,它基于XML的树状结构,提供在数据结构树中寻找节点的能力,也适用于HTML文档中; 开发工具 Chrome...

村雨1943
32分钟前
2
0
day148-2018-11-15-英语流利阅读-待学习

赴美生子恐结束?特朗普中期选举憋大招 毛西 2018-11-15 1.今日导读 在 2013 年,一部《北京遇上西雅图》让赴美生子这个曾经神秘的话题吸引了很多关注。每年,数以万计的父母远赴美国,并在那...

飞鱼说编程
今天
35
1
OSChina 周四乱弹 —— 每次我穿短裙的时候

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享DM DOKURO的单曲《Reality Check Through The Skull》: 差点以为手机卡了 《Reality Check Through The Skull》- DM DOKURO...

小小编辑
今天
624
14

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部