
HiveSQL学习
文章平均质量分 88
经常在写sql的时候提笔忘语法规则,开个模块来mark下常用的sql用法
piepis
DT时代的一块砖
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数仓面试常见问题:4.ETL流程与调度
ETL 是数据仓库的入口,负责将来自不同来源的数据提取、清洗和整合,解决数据分散和格式不统一的问题,形成统一的分析数据源。原创 2025-03-10 15:32:33 · 841 阅读 · 0 评论 -
数仓面试常见问题:3.数据倾斜与处理
假设在 JOIN 操作中,存在一个小表(如用户信息表),需要与大表(如订单表)进行 JOIN。通过以上几种方式处理数据倾斜问题后,任务的执行时间显著减少,内存使用更加均衡,整个数据处理过程变得更加高效。这样,原本集中在一个用户上的数据就被分散到多个 reduce 任务中,缓解了数据倾斜问题。)中,数据在不同分区或节点上分布不均衡,导致部分任务执行时间过长,从而影响整体作业的性能。操作时,如果某些键的值过于集中,部分计算任务会比其他任务处理更多的数据,导致资源利用不均衡。比如将用户 ID 变成。原创 2025-03-10 14:11:17 · 483 阅读 · 0 评论 -
数仓面试常见问题:2.SQL与性能优化
尽量使用内连接(INNER JOIN),因为它只返回两个表中都存在的记录。避免使用 OUTER JOIN,因为它会增加计算量。:在可能的情况下,使用子查询或者提前过滤数据,减少 JOIN 需要处理的数据量。:在参与 JOIN 的字段上创建索引,可以极大提升 JOIN 的性能。特别是对大表的联接字段,索引能加速查找过程。:如果你的 JOIN 语句涉及到某些字段,确保这些字段上有索引。例如,在连接字段上使用B-tree索引。:除了 JOIN 字段外,查询条件字段(例如WHERE。原创 2025-03-10 13:14:26 · 987 阅读 · 0 评论 -
数仓面试常见问题:1.数仓基础与设计
缓慢变化维(Slowly Changing Dimension, SCD)缓慢变化维指的是 维度表中的数据会随着时间推移而发生变化,但变化的速度相对较慢,例如客户的地址、产品的价格、员工的职位等。处理缓慢变化维的方法(SCD 类型)针对缓慢变化维的不同业务需求,常见的处理方法有以下几种SCD 类型处理方法适用场景优缺点SCD1(覆盖更新)直接用新值覆盖旧值,不保留历史记录不需要追踪历史数据,如用户的最新手机号简单高效,但丢失历史数据SCD2(新增记录)原创 2025-03-10 12:04:10 · 915 阅读 · 0 评论 -
Hive数据库操作
创建和列表数据库hive > CREATE DATABASE financials; hive > CREATE DATABASE IF NOT EXISTS financials; # IF NOT EXISTX 会做一个覆盖检查hive > SHOW DATABASES;#列出当前数据库#default 默认数据库。初始化就有的hive > SHOW DATABASES LIKE 'd.*'#like 匹配改变数据库存放路径缺省存放目录由hiv原创 2020-09-23 19:01:40 · 204 阅读 · 0 评论 -
Hive常用函数
IF函数:if语法: if(testCondition,valuTrue,valueFalseOrNull)说明:当条件 testCondition 为True时,返回valueTrue, 否则返回valueFalseOrNull条件判断函数:CASE语法: Case A when b THEN c [WHEN d THEN e] * [ELSE f] END说明:如果a 等于 b,那么返回c,如果a等于d,那么返回e,否则返回feg: -- 销售类型增加一级部门的prt_distributio原创 2020-09-23 18:58:25 · 1921 阅读 · 0 评论 -
HiveTable操作命令
hive执行参数命令行直接执行HQLhive -e "select *from dw.ol_oitf_interface_auc_dimension_business limit 10"执行HQL文件中的语句hive -f emp.hqlhive -f /home/my/hive-script.sql'''Example of running an initialization script before entering interactive mode 在进入交互模式之前运行初始原创 2020-09-23 18:37:32 · 561 阅读 · 0 评论 -
HiveSelect操作
保存select查询结果的几种方式1.将查询结果保存到一张新的hive表中create table t_tmpasselect * from t_p;2将查询结果保存到一张已经存在的hive表中eg:(into 增量增加)insert into table t_tmpselect * from t_p;#-----------------------------------------------------eg:(overwrite 覆盖增加)insert overwrite tabl原创 2020-09-23 18:24:12 · 1580 阅读 · 0 评论 -
HiveJoin操作
HiveJoinjoin_table:table_reference JOIN table_factor [join_condition] |table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_referencejoin_condition | table_reference LEFT SEMI JOIN table_referencejoin_condition | table_reference CROSS JOIN t原创 2020-09-23 18:15:03 · 473 阅读 · 0 评论 -
HiveCreatTable
目前在hive中常用的数据类型有:BIGINT – 主要用于状态,类别,数量的字段, 如status/option/type/quantityDOUBLE – 主要用于金额的字段, 如fee/price/bidSTRING – 除上述之外的字段基本都使用String, 尤其是id和日期时间这样的字段LIKE 允许用户复制现有的表结构,但是不复制数据。如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE 。表名和列名不区分大原创 2020-09-23 17:55:52 · 591 阅读 · 0 评论 -
HiveAlterTable
和我们熟悉的关系型数据库不一样,Hive现在还不支持在insert语句里面直接给出一组记录的文字形式,也就是说,Hive并不支持INSERT INTO …. VALUES形式的语句。Drop Partitions(删除分区)alter table ol_power_product_line_dept_1_dim drop partition(dt='${date_90}');#删除分区dfs -rm -r -f /ol/ol_power_product_line_dept_1_dim/dt=${dat原创 2020-09-23 17:46:47 · 492 阅读 · 0 评论 -
Hive&SQL的不同
Hive 和Mysql 一样,都对 大小写不敏感Hive不支持等值连接SQL中对两表内联可以写成:select * from dual a,dual b where a.key = b.key;Hive中应为select * from dual a join dual b on a.key = b.key; IS [NOT] NULLSQL中null代表空值, 值得警惕的是, 在HiveQL中String类型的字段若是空(empty)字符串, 即长度为0, 那么对它进行IS NULL的判原创 2020-09-23 17:43:34 · 868 阅读 · 0 评论 -
Hdoop配置文件
作业配置mapred.job.name作业名mapred.job.priority作业优先级mapred.job.map.capacity最多同时运行map任务数mapred.job.reduce.capacity最多同时运行reduce任务数hadoop.job.ugi作业执行权限mapred.map.tasksmap任务个数mapred.reduce.tasksreduce任务个数mapred.job.groups作业可运行的计算节原创 2020-09-23 17:40:49 · 170 阅读 · 0 评论