【星环云课堂大数据实验】InceptorSQL使用方法

文章目录

    • 一、InceptorSQL概述
    • 二、实验环境
    • 三、实验准备
    • 四、实验目的
    • 五、实验步骤
      • 5.1 使用Waterdrop连接Inceptor
      • 5.2、WordCount
      • 5.3、外部表与内部表
      • 5.4、普通ORC表
      • 5.5、创建ORC事务表
      • 5.6、创建ORC分区表
      • 5.7、创建ORC分区分桶表

一、InceptorSQL概述

InceptorSQL是一个**分布式SQL引擎,**经常在一下这些场景中使用:1. 批处理; 2.统计分析;3. 图计算和图检索;4.交互式统计分析

Inceptor中表的种类有很多,他们的划分规则如下:

  1. 按 Inceptor的所有权 分类可分为:外部表(或简称为外表)和托管表(内表)
  2. 按 表的存储格式 分类可分为:TEXT表、ORC表、CSV表和Holodesk表。
  3. 按表 是否分区 可分为:分区表和非分区表
  4. 按表 是否分桶 可分为:分桶表和非分桶表。
  • 托管表(内表)
    CREATE TABLE 默认创建托管表。Inceptor对托管表有所有权——用 DROP 删除托管表时,Inceptor会将表中数据全部删除。
  • 外表
    外表用 CREATE EXTERNAL TABLE 创建,外表中的数据可以保存在HDFS的一个指定路径上(和LOCATION <hdfs_path> 合用)。Inceptor对外表没有所有权。用DROP 删除外部表时,Inceptor删除表在metastore中的元数据而不删除表中数据,也就是说 DROP 仅仅解除Inceptor对外表操作的权利。
  • Text表
    文本格式的表,统计和查询性能都比较低,也不支持事务处理,所以通常用于将文本文件中的原始数据导入Inceptor中。针对不同的使用场景,用户可以将其中的数据放入ORC表或Holodesk表中。Inceptor提供两种方式将文本文件中的数据导入TEXT表中:
    (1)建外部TEXT表,让该表指向HDFS上的一个目录,Inceptor会将目录下文件中的数据都导入该表。(推荐)
    (2)建TEXT表(外表内表皆可)后将本地或者HDFS上的一个文件或者一个目录下的数据 LOAD 进该表。这种方式在安全模式下需要多重认证设置,极易出错,星环科技 不推荐 使用这个方式导数据。
  • CSV表
    CSV表的数据来源为CSV格式(Comma-Separated Values)的文件。文件以纯文本形式存储表格数据(数字和文本),CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。和TEXT表相似,CSV表常用于向Inceptor中导入原始数据,然后针对不同场景,用户可以将其中的数据放入ORC表或Holodesk表中星环科技 不建议在任何计算场景中使用CSV表
  • ORC表
    ORC表即ORC格式的表。在Inceptor中,ORC表还分为ORC事务表和非事务表。a. ORC事务表支持事务处理和更多增删改语法(INSERT VALUES/UPDATE/DELETE/MERGE),所以如果您需要对表进行事务处理,应该选择使用ORC事务表。b. ORC非事务表则主要用来做统计分析。
  • Holodesk表
    Holodesk表存储在内存或者SSD中(可以根据您的需要设置),同时,星环科技为其提供了一系列优化工具,使得在Holodesk表上进行大批量复杂查询能达到极高的性能。所以,如果您的数据量特别大,查询非常复杂,您应该选择使用Holodesk表。

二、实验环境

基于星环云课堂TranswarpVD

三、实验准备

  1. 进入TDH-Client目录下
    cd /transwarp/Desktop/TDH-Client
  2. 执行TDH Client的init.sh脚本,此操作只对当前Session有效
    source ./init.sh

四、实验目的

• 掌握Inceptor SQL的基本使用。

• 了解Inceptor各类表的区别与应用场景。

五、实验步骤

5.1 使用Waterdrop连接Inceptor

  1. 打开Transwarp Manager查看集群中Inceptor主节点的Server Host
    查看结果为tdh-05(后面会用)
    在这里插入图片描述
    在这里插入图片描述
  2. 在桌面点击waterdrop,并建立与Inceptor的连接

在这里插入图片描述
3. 在弹出界面中填写如下信息,其中Server Host为Inceptor主节点地址,之前步骤中已经获取到,Port为10000,Auth Type选择为LDAP。
在这里插入图片描述
4. 进行连接测试
在这里插入图片描述
5. 点击Next完成连接操作。
在这里插入图片描述
6. 建立与Inceptor的连接,并打开SQL编辑器,之后的SQL操作都在编辑器中完成,编写好SQL后,选中SQL内容,按快捷键Ctrl+回车执行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2、WordCount

(1)创建wordcount.txt文件,并上传HDFS
• 任务:将本地文件wordcount.txt上传至HDFS目录中。
• 步骤
Linux:

1.echo -e “Deer Bear River\nCar Car River\nDeer Car Bear” > /transwarp/Desktop/wordcount.txt
// 在本地创建wordcount.txt文件,并完成数据写入在这里插入图片描述

2.hadoop fs -mkdir -p /training/{student_name}/inceptor_data/wordcount
// 在HDFS中创建作业输入目录在这里插入图片描述

3.hadoop fs -put /transwarp/Desktop/wordcount.txt /training/{student_name}/inceptor_data/wordcount/
// 将wordcount.txt上传到作业输入目录在这里插入图片描述
4. hadoop fs -chmod -R 777 /training/{student_name}/inceptor_data/wordcount/
在这里插入图片描述
(2)在Waterdrop中创建内表,并导入HDFS数据
• 任务:创建内表docs,并将HDFS中的数据导入。
• 步骤
SQL:

1、 create database {database_name};
// 创建数据库, 命名规范为db_账号名,

2、use {database_name};
// 进入数据库
在这里插入图片描述

3、create table docs(line string);
// docs表创建

4.load data inpath ‘/training/{student_name}/inceptor_data/wordcount’ into table docs;
// 导入hdfs数据
在这里插入图片描述
(3)创建结果表
• 任务:创建内表wc,保存词频统计结果。
• 步骤
SQL:
1、 create table wc(word string, totalword int);
// docs表创建
(4)计算wordcount
• 任务:对docs表完成词频统计,将结果保存到wc表中。
• 步骤
SQL:

1、from (select explode(split(line, ’ ')) as word from docs) w
insert into table wc
select word, count(1) as totalword
group by word
order by word;
// wordcount统计
在这里插入图片描述

2、select * from wc;
// 查看分析结果
在这里插入图片描述

5.3、外部表与内部表

(1)创建外部表,查看数据格式
• 任务:为data.csv文件创建外部表,并查看数据内容。
• 步骤
SQL:
// 在Inceptor中创建外表,并查看数据
drop table if exists ext_table;
create external table ext_table(rowkey string, num int, country int, rd string) row format delimited fields terminated by ‘,’ location ‘/images/inceptor_data’;
select * from ext_table limit 10;
在这里插入图片描述
(2)创建内表,并接入外表数据
• 任务:创建ORC内表,并将外表数据导入。
• 步骤
SQL:
// 在Inceptor中创建内表
drop table if exists inner_table;
create table inner_table(rowkey string, num int, country int, rd int) stored as orc;
// 将外表数据导入到内表中. insert into inner_table select * from ext_table;
// 查看内表数据
select * from inner_table limit 10;
在这里插入图片描述

5.4、普通ORC表

• 任务:并创建普通ORC表,并验证ORC表的事务性。
• 步骤
SQL:
// 创建数据库和ORC表
drop table if exists orc_table;
create table orc_table(key int, value string) stored as orc;
// 向ORC表中插入数据,会报错(ORC表没有事务)
insert into orc_table values(1,‘test’);
在这里插入图片描述

5.5、创建ORC事务表

• 任务:创建ORC事务表,并进行事务操作。
• 步骤
SQL:
// 设置开启事务
set transaction.type=inceptor;
// 设置PLSQL编译器不检查语义
set plsql.compile.dml.check.semantic=false;
// 创建ORC事务表
drop table if exists atomicity_table;
create table atomicity_table(key int, value string) clustered by(key) into 8 buckets stored as orc tblproperties(‘transactional’=‘true’);
向ORC事务表中插入数据
insert into atomicity_table values(1,‘src1’);
insert into atomicity_table values(2,‘src2’);
// 查看数据是否写入成功
select * from atomicity_table;
// 更新ORC事务表数据
update atomicity_table set value = ‘src3’ where key = 1;
// 查看数据是否更新成功
select * from atomicity_table;
在这里插入图片描述

5.6、创建ORC分区表

• 任务:创建单值分区表user_acc_level,表包含字段为name,分区字段为acc_level。
• 步骤
SQL:
// 创建单值分区表,分区键=acc_level
CREATE TABLE user_acc_level (name STRING)
PARTITIONED BY (acc_level STRING);
在这里插入图片描述

5.7、创建ORC分区分桶表

• 任务:创建范围分区分桶表,并存储为ORC格式。
• 步骤
SQL:
// 创建范围分区分桶表,分区键=sj,分桶键=mbbh
create table hq_ais_history_data_orc_bucket (
cbm string,
csx int,
cwjqd int,
dzdwzz int,
gjmc string,
hh string,
hs double,
hwlx int,
hx double,
hxzt int,
imobm string,
mbbh string,
mdd string,
txzt int,
xxlx int,
xxly int,
yjddsj string,
zdjss double,
zxl int,
lat double,
lon double,
mbsj int
)
partitioned by range (sj string) (
partition values less than (“2014-11-04 23:59:59”),
partition values less than (“2014-11-05 23:59:59”),
partition values less than (“2014-11-06 23:59:59”),
partition values less than (“2014-11-07 23:59:59”),
partition values less than (“2014-11-08 23:59:59”),
partition values less than (“2014-11-09 23:59:59”),
partition values less than (“2014-11-10 23:59:59”),
partition values less than (“2014-11-11 23:59:59”),
partition values less than (“2015-08-05 23:59:59”)
)
clustered by (mbbh) into 23 buckets
stored as orc;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/249969.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-迷宫问题

文章目录 1、题目描述2、题目分析3、代码实现 1、题目描述 题目链接&#xff1a;迷宫问题 、 注意不能斜着走&#xff01; 2、题目分析 &#xff08;1&#xff09;0为可以走&#xff0c;1不能走且只有唯一一条通路 &#xff08;2&#xff09;我们可以通过判断上下左右来确定…

开酸奶店为何失败,5年创业者和你分享赚钱经验

我是张峻荣&#xff0c;开鲜奶吧已经有 5 年时间了&#xff0c;在自媒体创业板块也是小有名气&#xff0c;经常在网络上分享一些酸奶店的创业知识。今天我要和大家分享的是开酸奶店失败的原因&#xff0c;以及如何赚钱的经验。 5 年前&#xff0c;是我第一次创业失败&#xff…

activiti并行网关执行时每个关联表的变化

activiti并行网关执行时每个关联表的变化 文章目录 &#x1f50a;流程图&#x1f4c6; 通过请假节点&#x1f4d5;通过一个并行节点&#x1f5a5;️再通过一个并行节点&#x1f516;再通过校长任务&#x1f58a;️最后总结 &#x1f50a;流程图 &#x1f4c6; 通过请假节点 &l…

口袋参谋:新品上架,如何获取更多免费流量?

​新品上架 如何获得更多的免费流量&#xff1f; 我相信 这是99.999%的商家&#xff0c;都关心的问题&#xff01; 今天我就来和大家好好说道说道。 01 流量的组成 新品本身是没有权重的&#xff0c;买家搜不到我们。 如果想要获得更多的免费流量&#xff0c;我们就要知道…

千梦网创:逮住一闪而过的机会疯狂摩擦

我这个人平时想的就多&#xff0c;睡觉也在想事情&#xff0c;有时候睡觉里想的事情往往都是很纯粹的、很绝妙的&#xff0c;但是经常性一醒过来就忘了&#xff0c;再去回忆怎么也想不起来了。 灵感只在特定的环境下产生&#xff0c;这类环境是不可再生和模拟的。 机会只因特…

17. 常用类

1.String类 1).什么是字符串? 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 2).String类的概述 String 类代表字符串。Java 程序中的所有字符串字面值&#xff08;如 “abc” &#xff09;都作为此类的实例实现。 字符串是常量&#xff1b;它们…

connect: Network is unreachable问题解决

第一步&#xff1a;查看ifcfg-ens33配置文件 cd /etc/sysconfig/network-scripts/ cat ifcfg-ens33 发现问题&#xff1a;GATEWAY写错成GATWAY 第二步&#xff1a;修改 vim ifcfg-ens33 第三步&#xff1a;检测是否成功 ping baidu.com 成功&#xff01;

【Unity动画】实现不同的肢体动作自由搭配播放Layer+Avatar Mask

这个教程教你学会使用Unity 动画层配合布偶遮罩&#xff08;AvaterMask&#xff09; 实现从2个动画身上只保留部分肢体动作&#xff0c;然后搭配播放 例如&#xff1a;一个正常跑的动画片段&#xff0c;我只保留腿部动作&#xff0c;形成一个层叫Run_leg 然后在从一个攻击动作…

Java-File类与IO流(2)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

b-tree b+tree两种区别

Btree多了叶子节点&#xff0c;并可以看到多了个箭头&#xff0c;这样查询比如大于>2,Btree更容易。而b--tree则要返到第一层、第二层才可以最得所有>2的数据

【STL容器】详解vector的使用和模拟实现

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; STL函数专栏 &#x1f319;请不要相信胜利就像山坡上的蒲公英一…

自媒体新闻中心-后台管理端

0.本节内容说明 本节主要是一个功能概述&#xff0c;了解清楚这个这个后台管理端做的什么&#xff0c;以及实现的思路&#xff0c;具体的实现代码部分&#xff0c;后面讲解 1.后台功能概述 登陆: 账号密码登陆&#xff0c;或者是账号人脸进行登陆内容审核&#xff1a;对于用户…

LeetCode2961双模幂运算(相关话题:快速幂)

题目描述 给你一个下标从 0 开始的二维数组 variables &#xff0c;其中 variables[i] [ai, bi, ci, mi]&#xff0c;以及一个整数 target 。 如果满足以下公式&#xff0c;则下标 i 是 好下标&#xff1a; 返回一个由 好下标 组成的数组&#xff0c;顺序不限 。 示例 &…

分数约分-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第20讲。 分数约分&#xf…

大创项目推荐 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

4G无线工业级路由器在智能制造设备互联互通中的角色

随着工业技术的不断发展和进步&#xff0c;智能制造已经成为了现代制造业的重要趋势和发展方向。而在智能制造过程中&#xff0c;设备之间的互联互通是至关重要的一环。在这个过程中&#xff0c;4G无线工业级路由器扮演着重要的角色&#xff0c;它提供了稳定可靠的网络连接&…

【算法Hot100系列】两数相加

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MQTT中的保留消息(Retained Message)

一条保留消息是MQTT中保留标志设置为true的一条普通消息。代理&#xff08;broker&#xff09;为对应的主题保留最后的保留消息及对应的QoS。每一个订阅了该主题的客户端在订阅之后会马上收到这个保留消息。代理&#xff08;broker&#xff09;为每个主题只存储一条保留消息。本…

OpenStack-train版安装之安装Swift(对象存储服务)、安装Cinder(块存储服务)

安装Swift&#xff08;对象存储服务&#xff09;、安装Cinder&#xff08;块存储服务&#xff09; 安装Swift&#xff08;对象存储服务&#xff09;控制节点安装和配置对象存储节点安装和配置Create and distribute initial rings配置与启动验证 安装Cinder&#xff08;块存储服…

云仓酒庄的品牌雷盛红酒分享红酒里加二氧化硫有害吗?

雷盛葡萄酒是广州万豪酒业有限公司旗下主力葡萄酒品牌&#xff0c;该品牌由云仓酒庄负责全国运营。雷盛&#xff08;LEESON&#xff09;品牌系列葡萄酒有幸邀请著名导演张纪中先生担任品牌代言人。采用多国家采购、多葡萄酒品种、多价位区间的全系列整体品牌形式&#xff0c;让…