大数据基础

Inceptor

Inceptor是一种交互式分析引擎,本质是一种SQL翻译器。Inceptor中一共可以操作五种类型的表结构:

  • 普通文本表(TXT表)

    • 普通表导入数据

      • 创建HDFS数据目录,在本地创建一个存放数据的文件夹,为了区分不同用户和不同数据源,建立以下两个目录

      • hadoop fs -mkdir -p /user/user1/data/inceptor
        hadoop fs -mkdir -p /user/user1/data/hyperbase
        
      • 首先将本地path存放的数据文件put到HDFS目录中,数据可以存放在集群中的任意一台机器中(注意本步操作可能会报load数据没有权限,HDFS上的数据和表的权限不一致 使用:(sudo -u hdfs hadoop fs -chown -R hive /user/*)命令进行owner的修改,hive为owner名字)或者使用sudo -u hdfs hadoop fs -chmod -R 777 /user/*

        • hadoop fs -put <path>/data.txt /user/user1/data/inceptor
          
      • 将上传进HDFS的文件load到Inceptor事先建立好的s3表中,在Inceptor中输入如下命令:

      • load data inpath ‘/user/user1/data/inceptor/data.txt’ into table s3;
        
      • 从其他表导,入注意不复制数据

        • create table t4 like t3;	
          
  • 分区表(分单值分区和范围分区)

    • 创建单值分区表(每创建一个单值分区表就会产生一个小文件,这里只有一个name值)

      • create table single_tbl(name string) partitioned by(level string)
        
  • 分桶表

    • 必须创建外表,只支持从外表导入数据,在分桶表中经常做聚合和join操作,速度非常快。另外分桶规则主要分为

      1. int型,按照数值取模,分几个桶就模几
      2. string型,按照hash表来分桶
    • 创建分桶表bucket_tbl(这里分桶的大小是用表的总数据大小除以200M,经实际优化测试,每个桶的数据为200M处理速度最优)

      • create external table bucket_info(id int, name string)row format delimited fields terminated by ',' location '/user/datadir';
        
  • holodesk表

    • holodesk表既可以基于内存也可以基于ssd存储和查询,holodesk会存两份,一份存在内存或者ssd中,一份存在HDFS中,这样可能在查询的性能上有所延迟
    • holodesk最擅长处理groupby的SQL查询语句
    • “cache”=“cache_medium"指定计算缓存的介质。可以选择ram,SSD和memeory三种。只有当服务器上配置有SSD时,才可以选择SSD作为缓存,Inceptor会自动利用SSD为计算加速。”
  • ORC表(Hive ORC格式)

    • 建立ORC格式表

      1. create table country(id int,country string)stored as orc;
        
      2. create external table ex_tbl(id int,country string)
                row format delimited fields terminated by ','
                stored as textfile
                location '/user/tdh/externaltbl';
        
      3. insert into country select * from ex_tbl;
        
  • ORC事务表(可进行增删改查操作,必须建立分桶表和外表,且两个表的表格式要和源数据字段一一对应起来)

    • 建立ORC格式事务表,必须要分桶,既可以单值插入,又可以通过外表插入
注意事项:
  • HDFS不能直接load到Inceptor中的ORC事务表中,(只能load到普通表和ORC表中)要想在ORC事务表里插入数据有两种方法:
    • a.建立一张外表,再将HDFS load进外表上,再insert into select * from external table
    • b.由于ORC事务表支持增删改查,也可以使用单值插入语句insert into table country values(101,japan)
  • 查看分区表的命令是show partitions [table名]
  • 查看每个表的创建时语句命令是show create table [table名]
  • 使用命令hdfs dfs -ls /user/country(或者使用hadoop fs -ls /user/country命令)
  • 默认数据库存放位置 hdfs://nameservice/inceptorsql1/user/hive/warehouse/ 在Inceptor创建数据库时一般使用它的default默认数据库,若自己建立数据库请不要指定location,还有自己建立的数据库可能会因为权限不够而造成一些操作失败报错。可以使用hadoop fs -ls
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值