当前位置: 首页 > 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;代…...

3个核心技巧:Element Plus效率提升与性能优化指南

3个核心技巧&#xff1a;Element Plus效率提升与性能优化指南 【免费下载链接】element-plus &#x1f389; A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus 副标题&#xff1a;面向初中级开发者的Element…...

手把手教你用AI超分镜像:低清图片3倍放大,细节修复超简单

手把手教你用AI超分镜像&#xff1a;低清图片3倍放大&#xff0c;细节修复超简单 1. 为什么你需要这个AI超分工具&#xff1f; 你是不是也遇到过这些头疼的情况&#xff1f; 翻出十几年前的老照片&#xff0c;想打印出来&#xff0c;却发现画面模糊得像蒙了一层雾。从网上下…...

资源处理效率工具RePKG:从问题解决到场景创新的实战指南

资源处理效率工具RePKG&#xff1a;从问题解决到场景创新的实战指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 在数字创意和开发工作中&#xff0c;我们经常遇到各种专用格式的…...

Galaxy UI组件库深度解析:3000+开源UI元素的完整实践手册

Galaxy UI组件库深度解析&#xff1a;3000开源UI元素的完整实践手册 【免费下载链接】galaxy The largest Open-Source UI Library! Community-made and free to use. Made with either CSS or Tailwind. 项目地址: https://gitcode.com/gh_mirrors/gal/galaxy 在当今快…...

Cursor Pro破解工具:如何通过开源技术方案实现AI编程助手无限制使用?

Cursor Pro破解工具&#xff1a;如何通过开源技术方案实现AI编程助手无限制使用&#xff1f; 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能…...

QuickSnap:提升三维建模效率的快速对齐工具——三维建模爱好者的精准对齐解决方案

QuickSnap&#xff1a;提升三维建模效率的快速对齐工具——三维建模爱好者的精准对齐解决方案 【免费下载链接】quicksnap Blender addon to quickly snap objects/vertices/points to object origins/vertices/points 项目地址: https://gitcode.com/gh_mirrors/qu/quicksna…...

掌握TegraRcmGUI:从入门到精通的Switch注入实践指南

掌握TegraRcmGUI&#xff1a;从入门到精通的Switch注入实践指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款基于C开发的图形化界面工具…...

FunASR Docker部署避坑大全:从SSL证书报错到热词不生效,一次解决所有常见问题

FunASR Docker实战排障指南&#xff1a;从证书配置到热词优化的深度解决方案 当你第一次尝试在Docker环境中部署FunASR语音识别服务时&#xff0c;那些看似简单的命令行参数背后可能藏着无数个"坑"。本文不会重复官方文档的基础操作&#xff0c;而是聚焦于五个最具代…...

图图的嗨丝造相-Z-Image-Turbo效果对比:8bit vs 16bit精度推理对渔网袜边缘锐度的影响

图图的嗨丝造相-Z-Image-Turbo效果对比&#xff1a;8bit vs 16bit精度推理对渔网袜边缘锐度的影响 1. 引言&#xff1a;当AI绘画遇上“渔网袜”细节 最近在玩一个挺有意思的AI绘画模型——图图的嗨丝造相-Z-Image-Turbo。这个模型专门针对“大网渔网袜”这种特定服饰的生成做…...

源码级重构与低代码交付:企业级 AI 视频管理平台的二次开发实战

作为一位在安防行业摸爬滚打 10 年的架构师&#xff0c;我经常被集成商朋友的灵魂拷问&#xff1a;“有没有一套代码&#xff0c;既能直接拿去给客户演示&#xff08;低代码&#xff09;&#xff0c;又能让我根据客户需求改得‘面目全非’&#xff08;深度定制&#xff09;&…...