当前位置: 首页 > news >正文

降龙十八掌

目录

大数据:

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

相关文章:

降龙十八掌

目录 大数据&#xff1a; 1 HIVE&#xff1a; 1.1 HIVE QL 1.1.1 创建表 1.1.2 更新表 1.1.3 常用语句 1.2 hive参数配置 大数据&#xff1a; 1 HIVE&#xff1a; 1.1 HIVE QL DDL中常用的命令有&#xff1a;create&#xff0c;drop&#xff0c;alter&#xff0c;trunc…...

【项目设计】MySQL 连接池的设计

目录 &#x1f449;关键技术点&#x1f448;&#x1f449;项目背景&#x1f448;&#x1f449;连接池功能点介绍&#x1f448;&#x1f449;MySQL Server 参数介绍&#x1f448;&#x1f449;功能实现设计&#x1f448;&#x1f449;开发平台选型&#x1f448;&#x1f449;MyS…...

Ubuntu系统adb开发调试问题记录

Ubuntu系统adb开发调试问题记录 一、adb devices no permissions二、自定义adb server端口三、动态库目录四、USB抓包 一、adb devices no permissions lsusb -t 设备树直观地查看设备的Bus ID和Device Num&#xff0c;lsusb找到对应的PID和VID编辑udev规则 sudo vim /etc/ud…...

【宏定义】——检验条件是否成立,并返回指定的值

文章目录 功能说明实现示例解析扩展 功能说明 宏检验条件是否成立&#xff0c;并返回指定的值 #define TU_VERIFY(...) _GET_3RD_ARG(__VA_ARGS__, TU_VERIFY_2ARGS, TU_VERIFY_1ARGS, UNUSED)(__VA_ARGS__)TU_VERIFY(1) 检验为真&#xff0c;啥也不干TU_VERIFY(0) 校验为假&…...

UE5引擎源码小记 —反射信息注册过程

序 最近看了看反射相关的知识&#xff0c;用不说一点人话的方式来说&#xff0c;反射是程序在运行中能够动态获取修改或调用自身属性的东西。 一开始我是觉得反射用处好像不大&#xff0c;后续查了下一些反射的使用环境&#xff0c;发现我格局小了&#xff0c;我觉得用处不大的…...

Redis缓存预热

说明&#xff1a;项目中使用到Redis&#xff0c;正常情况&#xff0c;我们会在用户首次查询数据的同时把该数据按照一定命名规则&#xff0c;存储到Redis中&#xff0c;称为冷启动&#xff08;如下图&#xff09;&#xff0c;这种方式在一些情况下可能会给数据库带来较大的压力…...

Android 耗时分析(adb shell/Studio CPU Profiler/插桩Trace API)

1.adb logcat 查看冷启动时间和Activity显示时间&#xff1a; 过滤Displayed关键字&#xff0c;可看到Activity的显示时间 那上面display后面的是时间是指包含哪些过程的时间呢&#xff1f; 模拟在Application中沉睡1秒操作&#xff0c;冷启动情况下&#xff1a; 从上可知&…...

保护隐私与安全的防关联、多开浏览器

随着互联网的不断发展&#xff0c;我们越来越离不开浏览器这个工具&#xff0c;它为我们提供了便捷的网络浏览体验。然而&#xff0c;随着我们在互联网上的活动越来越多&#xff0c;我们的个人信息和隐私也日益暴露在网络风险之下。在这种背景下&#xff0c;为了保护个人隐私和…...

CloudStudio搭建Next框架博客_抛开电脑性能在云端编程(沉浸式体验)

文章目录 ⭐前言⭐进入cloud studio工作区指引&#x1f496; 注册coding账号&#x1f496; 选择cloud studio&#x1f496; cloud studio选择next.js&#x1f496; 安装react的ui框架&#xff08;tDesign&#xff09;&#x1f496; 安装axios&#x1f496; 代理请求跨域&#x…...

【FPGA IP系列】FIFO深度计算详解

FIFO(First In First Out)是一种先进先出的存储结构&#xff0c;经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。 FIFO的一个关键参数是其深度&#xff0c;也就是FIFO能够存储的数据条数&#xff0c;深度设计的合理&#xff0c;可以防止数据溢出&#xff0c;也可以节省…...

JavaScript中语句和表达式

在JavaScript编程中&#xff0c;Statements和Expressions都是代码的构建块&#xff0c;但它们有不同的特点和用途。 ● Statements&#xff08;语句&#xff09;是执行某些操作的完整命令&#xff1b;每个语句通常以分号结束。例如&#xff0c;if语句、for语句、switch语句、函…...

打卡力扣题目十

#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解决方法一 三、解决方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS&#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Shar…...

UniApp实现API接口封装与请求方法的设计与开发方法

UniApp实现API接口封装与请求方法的设计与开发方法 导语&#xff1a;UniApp是一个基于Vue.js的跨平台开发框架&#xff0c;可以同时开发iOS、Android和H5应用。在UniApp中&#xff0c;实现API接口封装与请求方法的设计与开发是一个十分重要的部分。本文将介绍如何使用UniApp实…...

利用小波分解信号,再重构

function [ output_args ] example4_5( input_args ) %EXAMPLE4_5 Summary of this function goes here % Detailed explanation goes here clc; clear; load leleccum; s leleccum(1:3920); % 进行3层小波分解&#xff0c;小波基函数为db2 [c,l] wavedec(s,3,db2); %进行…...

QT数据库编程

ui界面 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QButtonGroup> #include <QFileDialog> #include <QMessageBox> MainWindow::MainWindow(QWidget* parent): QMainWindow(parent), ui(new Ui::M…...

基于stm32单片机的直流电机速度控制——LZW

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、实验目的二、实验方法三、实验设计1.实验器材2.电路连接3.软件设计&#xff08;1&#xff09;实验变量&#xff08;2&#xff09;功能模块a&#xff09;电机接收信号…...

实际项目中使用mockjs模拟数据

项目中的痛点 自己模拟的数据对代码的侵入程度太高&#xff0c;接口完成后要删掉对应的代码&#xff0c;导致接口开发完后端同事开发完&#xff0c;前端自己得加班&#xff1b;接口联调的时间有可能会延期&#xff0c;接口完成的质量参差不齐&#xff1b;对于数据量过大的模拟…...

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站&#xff1a; 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试&#xff0c;在本机搭建好服务器后&#xff0c;可以用这个测试外网是否可以访问本机&#xff1b; 2、 IP查询ipw.cn&#xff0c;这个可以查询本机的网络是否IPv6访问…...

【iOS】Frame与Bounds的区别详解

iOS的坐标系 iOS特有的坐标是&#xff0c;是在iOS坐标系的左上角为坐标原点&#xff0c;往右为X正方向&#xff0c;向下为Y正方向。 bounds和frame都是属于CGRect类型的结构体&#xff0c;系统的定义如下&#xff0c;包含一个CGPoint&#xff08;起点&#xff09;和一个CGSiz…...

SpringBoot百货超市商城系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot框架开发的百货超市系统。首先&#xff0c;这是一个很适合SpringBoot初学者学习的项目&#xff0c;代…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

简单介绍C++中 string与wstring

在C中&#xff0c;string和wstring是两种用于处理不同字符编码的字符串类型&#xff0c;分别基于char和wchar_t字符类型。以下是它们的详细说明和对比&#xff1a; 1. 基础定义 string 类型&#xff1a;std::string 字符类型&#xff1a;char&#xff08;通常为8位&#xff09…...