hive 删除某个分区中部分数据

简介: hive 删除某个分区中部分数据

hive 删除某个分区中部分数据


目录

一、需求

二、思路

三、补充

一、需求

删除 hive 表中某个分区中的部分数据(不是删除该分区)

二、思路

1、数据库删除数据的本质其实是用新的数据去覆盖原有的表,只要新的数据中不含有你想删除的数据,就达到了删除的目的。

所以删除的语法是:

insert overwrite

2、删除分区表更复杂的一点是,要带上分区的限制:

insert overwrite table sanmei_db.sanmei_example partition(dt='2020-12-18') 
select ...

3、此外,写 select * 不对,要写明除分区字段的所有字段。比如,下面的写法会报错:

(假设我的需求是删除 2020.12.18 日分区中 count 字段超过 200 的数据)

insert overwrite table sanmei_db.sanmei_example partition(dt='2020-12-18') 
select * from sanmei_db.sanmei_example
where dt = '2020-12-18' and count < 200;

上述代码报错:

SQL 错误 [10044] [42000]: Error while compiling statement: FAILED: SemanticException [Error 10044]: Line 1:23 Cannot insert into target table because column number/types are different ''2020-12-18'': Table insclause-0 has 2 columns, but query has 3 columns.

因此,代码应该写成如下:

insert overwrite table sanmei_db.sanmei_example partition(dt='2020-12-18') 
select hour, count from sanmei_db.sanmei_example
where dt = '2020-12-18' and count < 200;

三、补充

Hive 1.x 版本中没有 delete 操作。

2.x 版本更新后支持,如果一个表要实现 update 和 delete 功能,该表就必须支持 ACID,而支持 ACID,就必须满足以下条件: 1、表的存储格式必须是 ORC(STORED AS ORC);

以上,问题解决~

相关文章
|
2月前
|
SQL 分布式计算 Hadoop
创建hive表并关联数据
创建hive表并关联数据
46 0
|
9月前
|
SQL Java 大数据
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
365 1
|
9月前
|
SQL 存储 分布式计算
Hive 和 Spark 分区策略剖析
Hive 和 Spark 分区策略剖析
|
9月前
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
151 0
|
29天前
|
SQL 分布式计算 HIVE
实时计算 Flink版产品使用问题之同步到Hudi的数据是否可以被Hive或Spark直接读取
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL 分布式计算 NoSQL
使用Spark高效将数据从Hive写入Redis (功能最全)
使用Spark高效将数据从Hive写入Redis (功能最全)
|
1月前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
|
17天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在进行Hive分区truncate操作时遇到权限不足,怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
19 0
|
2月前
|
SQL 分布式计算 关系型数据库
使用 Spark 抽取 MySQL 数据到 Hive 时某列字段值出现异常(字段错位)
在 MySQL 的 `order_info` 表中,包含 `order_id` 等5个字段,主要存储订单信息。执行按 `create_time` 降序的查询,显示了部分结果。在 Hive 中复制此表结构时,所有字段除 `order_id` 外设为 `string` 类型,并添加了 `etl_date` 分区字段。然而,由于使用逗号作为字段分隔符,当 `address` 字段含逗号时,数据写入 Hive 出现错位,导致 `create_time` 值变为中文字符串。问题解决方法包括更换字段分隔符或使用 Hive 默认分隔符 `\u0001`。此案例提醒在建表时需谨慎选择字段分隔符。
|
2月前
|
SQL 数据采集 存储
Hive实战 —— 电商数据分析(全流程详解 真实数据)
关于基于小型数据的Hive数仓构建实战,目的是通过分析某零售企业的门店数据来进行业务洞察。内容涵盖了数据清洗、数据分析和Hive表的创建。项目需求包括客户画像、消费统计、资源利用率、特征人群定位和数据可视化。数据源包括Customer、Transaction、Store和Review四张表,涉及多个维度的聚合和分析,如按性别、国家统计客户、按时间段计算总收入等。项目执行需先下载数据和配置Zeppelin环境,然后通过Hive进行数据清洗、建表和分析。在建表过程中,涉及ODS、DWD、DWT、DWS和DM五层,每层都有其特定的任务和粒度。最后,通过Hive SQL进行各种业务指标的计算和分析。
435 1
Hive实战 —— 电商数据分析(全流程详解 真实数据)