降龙十八掌

目录

大数据:

1 HIVE:

1.1 HIVE QL

1.1.1 创建表

1.1.2 更新表

1.1.3 常用语句

1.2 hive参数配置


大数据:

1 HIVE:

1.1 HIVE QL

        DDL中常用的命令有:create,drop,alter,truncate和rename等等。而,DML中常用的命令有:insert,update,delete和select等等

1.1.1 创建表

  • 创建一张内部分区表
CREATE TABLE ads_ql_jg_jhxm_1day (xzqhdm string comment '行政区划代码' ,sscsdm string comment '所属城市代码' ,yskzjbm string comment '原始库主键编码' ,xmmc string comment '项目名称' ,xmlx string comment '项目类型' ,zgdw string comment '主管单位' ,xmnr string comment '项目内容' ,jhnd int comment '计划年度' ,xmjszq int comment '项目建设周期' ,xmtze decimal(13,3) comment '项目投资额' ,bz string comment '备注' ,sjtbzt string comment '数据同步状态' ,sjtbsj timestamp comment '数据同步时间' ,kjxx string comment '空间信息' 
)
COMMENT '桥梁计划项目属性结构表'
partitioned by (partition_time string) 
ROW FORMAT DELIMITED FIELDS 
TERMINATED BY ',' stored as orc;
  • 创建外部表
CREATE EXTERNAL TABLE page_view
(
viewTime	  INT, 
userid		  BIGINT, 
page_url	  STRING, 
referrer_url  STRING, 
ip 			  STRING COMMENT 'IP Address of the User', 
country 	  STRING COMMENT 'country of origination'
) 
COMMENT 'page_view' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\054' --指定字段分隔符,这里我们使用逗号分隔符
--FIELDS TERMINATED BY '\t':制表符(\t)作为字段分隔符。
STORED AS TEXTFILE 
LOCATION '<hdfs_location>'; 
  • 创建分桶表

CREATE TABLE par_table
(viewTime	 INT, userid		 BIGINT, page_url	 STRING, referrer_url STRING, ip			 STRING COMMENT 'IP Address of the User'
) 
COMMENT 'par_table' 
PARTITIONED BY(date STRING, pos STRING) --2级分区
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS --根据 userid 列进行分桶,并在每个桶内按照 viewTime 列进行排序
ROW FORMAT DELIMITED '\t'
FIELDS TERMINATED BY '\n' 
STORED AS ORC; 

1.1.2 更新表

--删除表
DROP TABLE table_name;--删除多个分区
ALTER TABLE table_name DROP PARTITION (statis_date='20230701'), PARTITION (statis_date='20230702');
--删除一个分区范围
--删除 2023-07-01 到 2023-07-10 的日分区
ALTER TABLE table_name DROP PARTITION (statis_date BETWEEN '20230701' AND '20230710');--重命名表
ALTER TABLE table_name RENAME TO new_table_name;--修改列的名字、类型、位置、注释 
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] 
--这个命令可以允许改变列名、数据类型、注释、列位置或者它们的任意组合,例子如下
--将dwd_test_d 表中的orderid 字段修改为order_id,并把字段类型和注释更新成新的
ALTER TABLE dwd_test_d CHANGE COLUMN orderid order_id string comment '订单号';

1.1.3 常用语句

--新增字段
ALTER TABLE employee ADD COLUMNS (salary double COMMENT '员工薪水');--复制一个空表 
CREATE TABLE empty_key_value_store LIKE key_value_store;--插入数据的语句
INSERT INTO table VALUES (value1, value2, ...),(value1, value2, ...), ...​--往分区表写入的语句
insert overwrite table dwd_test_d partition (partition_time='20230524')
select
...from
table_name--快速创建备份表
create table ads_ql_jg_wqzzjl_full_20230711 stored as orc as
select
*
from
ads_ql_jg_wqzzjl_full--hive取昨天日期
regexp_replace(substr(date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP()),1),1,10),'-','')
--hive取明天日期
regexp_replace(substr(date_add(FROM_UNIXTIME(UNIX_TIMESTAMP()),1),1,10),'-','')
--时间戳
from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') as etl_time
--hive取当前日期
DATE_FORMAT(CURRENT_DATE(), 'yyyyMMdd')--开窗函数
row_number() over( partition by  a.id, a.create_date order by etl_time desc) as rn​
--行转列
select 分类字段,concut_ws('',collet_set (合并字段)) as 别名 
from table_name
group by 
分类字段--列转行
select 字段,字段别名
from table_name
lateral view explode (split(拆分字段,分隔符)) 表别名 as 字段别名

1.1.4 DWD表做更新插入语句

每天把分区表中新增和修改的数据插入到DWD表中

insert overwrite table dwd_ps_jg_xqrb_full
selectsscsbm,sscs,xzqhdm,xzqhmc,.........from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') as etl_time --etl处理时间
from(selecta.*,row_number() over(partition by a.jyjlbm,a.jyxxbm order by etl_time desc) as rnfrom(selectsscsbm,sscs,xzqhdm,xzqhmc,.........etl_time --etl处理时间fromdwd_ps_jg_xqrb_fullunion allselectsscsbm,sscs,xzqhdm,xzqhmc,.........from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') as etl_time --etl处理时间frommid_dwd_ps_jg_xqrb_incwherepartition_time = '${lastDay}') a) b
wherern = 1
  • 1.2 hive参数配置

set mapred.job.name=任务名称;--设置MR任务名称--2个分桶表JOIN设置参数--start
--执行Join操作时,基于排序后的数据进行高效的连接。
set hive.auto.convert.sortmerge.join=true;
--基于分桶的Map Join通过将数据按照相应的分桶策略分配到不同的桶中,然后在执行 Join 操作时,只处理涉及到的特定桶的数据,避免了全表扫描的开销,提高了查询效率。
set hive.optimize.bucketmapjoin = true;
--Sort-Merge Join 通过对参与 Join 操作的表按照 Join 键进行排序,从而实现高效的连接操作。它可以避免传统的 Hash Join 算法所带来的内存开销和数据倾斜的问题。
set hive.optimize.bucketmapjoin.sortedmerge = true;
--2个分桶表JOIN设置参数--endset hive.map.aggr=true; --启用 hive.map.aggr 参数后,Hive 将在 Map 阶段进行部分聚合操作,减少数据传输的数量。具体来说,Map 端会对局部数据进行聚合,将相同键的数据合并在一起,然后再传输给 Reduce 端进行最终的聚合操作。这样做的好处是减少了数据传输量,减轻了网络负载,从而提高了查询性能。尤其在处理大规模数据集时,启用 Map 端聚合功能可以有效减少整体作业的执行时间。但可能会增加 Map 阶段的内存消耗。

2 Doris

--建表语句
CREATE TABLE ods_ps_jc_ssjc
(`bsm`      varchar(32) NOT NULL    comment "标识码"
,`dwbsm`    varchar(32) NOT NULL    comment "点位标识码"
,`jczb`     varchar(32) NOT NULL    comment "监测指标"
,`jcz`      decimal(20,2) NOT NULL  comment "监测值"
,`jccjsj`   DATETIME    NOT NULL    comment "监测采集时间"
,`jcsbsj`   DATETIME    NOT NULL    comment "监测上报时间"
,`bz`       varchar(255)            comment "备注"
)
DUPLICATE KEY(`bsm`,`dwbsm`,`jczb`)
DISTRIBUTED BY HASH(`bsm`) BUCKETS 1
PROPERTIES(
"replication_allocation" = "tag.location.default: 1"
);--创建动态分区表
CREATE TABLE doris_d.ods_ql_jc_ssjc_inc (
BSM             VARCHAR(32)     comment '标识码'
,DWBSM           VARCHAR(32)     comment '点位标识码'
,JCZB            VARCHAR(32)     comment '监测指标'
,JCZ             decimal(20,2)   comment '监测值'
,JCCJSJ          DATETIME        comment '监测采集时间'
,JCSBSJ          DATETIME        comment '监测上报时间'
,BZ              VARCHAR(255)    comment '备注'
,YSKZJBZ         VARCHAR(64)     comment '原始库主键标志'
,SJTBZT          VARCHAR(16)     comment '数据同步状态'
,SJTBSJ          DATETIME        comment '数据同步时间'
,SSCSDM          VARCHAR(6)      comment '所属城市代码'
,EXTRACT_TIME    DATETIME        comment '抽取时间'
)
DUPLICATE KEY(`BSM`)
COMMENT '桥梁实时监测属性结构表'
PARTITION BY RANGE(SJTBSJ) ()
DISTRIBUTED BY HASH(`SJTBSJ`) BUCKETS 1
PROPERTIES("dynamic_partition.enable" = "true","dynamic_partition.time_unit" = "DAY","dynamic_partition.end" = "3","dynamic_partition.prefix" = "p","dynamic_partition.buckets" = "2","replication_allocation" = "tag.location.default: 1"
);--查询表中分区
SHOW PARTITIONS FROM doris_d.ods_ql_jc_ssjc_inc;
--查询建表语句
SHOW CREATE TABLE doris_d.ods_ql_jc_ssjc_inc
--查询表中某个分区
select * from doris_d.ods_ql_jc_ssjc_inc PARTITION p20230722

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python web实战 | 使用 Django 搭建 Web 应用程序 【干货】

概要 从社交媒体到在线购物&#xff0c;从在线银行到在线医疗&#xff0c;Web 应用程序为人们提供了方便快捷的服务。Web 应用程序已经成为了人们日常生活中不可或缺的一部分。搭建一个高效、稳定、易用的 Web 应用程序并不是一件容易的事情。本文将介绍如何使用 Django 快速搭…

OpenShift 4 - 可观测性之用 OpenTelemetry+Jaeger 实现 Distributed Tracing

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.13 的环境中验证 文章目录 技术架构部署 Distributed Tracing 运行环境安装测试应用并进行观测跟踪参考 说明&#xff1a; 本文使用的测试应用采用的是 “手动 Instrumentation” 方式在…

WPF快速开发(2):图标库知识点

文章目录 前言知识点windows资源Style:样式Setter:属性继承关系 Trigger:触发器 WPF层级划分数据绑定声明数据上下文绑定数据模板 前言 图标资源下载 iconfont 知识点 windows资源 Window.Resources&#xff1a;资源位置声明X:Key&#xff1a;资源Id&#xff0c;用于前端的…

Kafka 实时处理Stream与Batch的对比分析

Kafka 实时处理Stream与Batch的对比分析 一、简介1. Kafka的定义和特点2. Kafka实时处理基础架构 二、Stream和Batch1. Stream和Batch的区别2. 对比Stream和Batch的优缺点Stream的优缺点Batch的优缺点 三、使用场景1. 使用场景对比Batch使用场景Stream使用场景 2. 如何选择Stre…

PHP服务器文件日志功能

php文件日志功能 <?php w_log(123,test/); w_log(array(a>1),test/); function w_log($data, $path log/) {$root_pathstr_replace(\\, /, dirname(dirname(__FILE__)));//改成你自己目录$dir $root_path . /log/ . $path;if (!is_dir($dir)) {mkdir($dir, 0777, tr…

2023年JAVA最新面试题

2023年JAVA最新面试题 1 JavaWeb基础1.1 HashMap的底层实现原理&#xff1f;1.2 HashMap 和 HashTable的异同&#xff1f;1.5 Collection 和 Collections的区别&#xff1f;1.6 Collection接口的两种区别1.7 ArrayList、LinkedList、Vector者的异同&#xff1f;1.8 String、Str…

【云原生】Minikube 部署

minikube 介绍 minikube 是本地 Kubernetes&#xff0c;专注于让 Kubernetes 易于学习和开发。 您所需要的只是 Docker&#xff08;或类似兼容的&#xff09;容器或虚拟机环境&#xff0c;只需一条命令即可使用 Kubernetes&#xff1a;minikube start 环境准备 2 个或更多 …

前端JS 展示上传图片缩略图(本地图片读取)

需求&#xff1a; 点击上传图片按钮&#xff0c;选择图片以后&#xff0c;不请求后端接口&#xff0c;直接将图片展示在缩略图中。 解决方案&#xff1a; 使用 FileReader 和 FileReader 中的 readAsDataURL 方法。 第一步 从input[type“file”] (上传文件标签) 里面拿到fil…

数据库管理-第九十四期 19c OCM之路-第四堂(02)(20230725)

第九十四期 19c OCM之路-第四堂&#xff08;02&#xff09;&#xff08;20230725&#xff09; 第四堂继续&#xff01; 考点3&#xff1a;SQL statement tuning SQL语句调优 收集Schema统计信息 exec dbms_stats.gather_schems_stats(HR);开启制定表索引监控 create index…

AutoSAR系列讲解(实践篇)9.2-信息发送的Filter机制

再强调一遍哈,这几节的内容大家看不懂没关系。都属于不常用的知识,仅作了解,假如用到了可以再挖出来看看。还有一点,很多的英文不太好翻译,比如这里的Filter,翻译成滤波,筛选我感觉都不太贴切,干脆就直接叫Filter了,之后应该会出现类似的英文,博主尽量想办法让大家理…

C语言每日一题:6.移除元素+合并两个有序数组。

第一题&#xff1a;移除元素 思路一&#xff1a; 一&#xff1a;暴力查找的方法&#xff1a; 1.找到对应val值的下标&#xff0c;返回数组的下标。 2.删除对应的下标&#xff0c;从前向后用后面覆盖前面。当后一个是数组最后一个数值是就赋值结束了&#xff08;注意数组越界的问…

ASCII对照表

文章目录 介绍ASCII对照表 介绍 ASCII(American Standard Code for Information Interchange)是美国信息交换标准代码。基于拉丁字母的一套电脑编码系统&#xff0c;主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准&#xff0c;并等同于国际标准ISO/IEC 646。AS…

width: calc(~“100% - 267px“);动态css 调样式

.result-filtering {color: #8b8b8b;display: flex;// width: 82.6%;width: calc(~"100% - 267px");}

leetcode131. 分割回文串(java)

分割回文串 leetcode131. 分割回文串题目描述回溯算法 动态规划代码演示 回文字符串 leetcode131. 分割回文串 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一…

[踩坑记] Linux环境下bitsandbytes安装是后报错解决

情境 在测试LLM Webui demo的时候&#xff0c;安装依赖pip install bitsandbytes0.40.0 后&#xff0c;python -m module name 时报错:CUDA Setup failed despite GPU being available. Please run the following command to get more information。 解决方法 从git hub 官方…

5.python设计模式【单例模式】

内容&#xff1a;保证一个类只有一个实例&#xff0c;并提供一个访问它的全局访问点角色&#xff1a; 单例&#xff08;Singleton&#xff09; UML图 举个例子&#xff1a; 需求&#xff1a;一个类只能实例化一个对象&#xff0c;不能实例化多个对象 from abc import abstract…

RocketMQ教程-(5)-功能特性-事务消息

事务消息为 Apache RocketMQ 中的高级特性消息&#xff0c;本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。 事务消息为 Apache RocketMQ 中的高级特性消息&#xff0c;本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。…

Kotlin与Java语法对比学习

定义变量 // Kotlin val i: Int 10 // 定义一个整数变量 val d: Double 10.0 // 定义一个双精度浮点数变量 val b: Boolean true // 定义一个布尔变量 val c: Char a // 定义一个字符变量 val s: String "Hello, World!" // 定义一个字符串变量 val arr: …

PostgreSQL查看数据库对象大小

PostgreSQL查看数据库对象大小 PostgreSQL查看数据库对象大小1、查看某个数据库大小2、查看多个数据库大小3、按顺序查看索引大小4、查看所有对象的大小 PostgreSQL查看数据库对象大小 1、查看某个数据库大小 select pg_size_pretty(pg_database_size(tzqdb));2、查看多个数据…

【已解决】VS报错C2760

在项目中增加第三方库的时候&#xff0c;出现了C2760的报错&#xff0c;常用路径都设置好了&#xff0c;判断可能是属性设置的问题&#xff0c;就查了一下&#xff0c;确实一下就改好了 操作流程&#xff1a; 项目右键后打开最下面的属性 属性——》C/C——》语言——》符合…