我们可以对 hive 中的“文本文件”执行 crud 操作吗

Posted

技术标签:

【中文标题】我们可以对 hive 中的“文本文件”执行 crud 操作吗【英文标题】:Can we perform crud operation on "text file" in hive 【发布时间】:2019-02-08 02:35:10 【问题描述】:

我是 Hadoop 的新手,在发布这个问题之前,我已经在 google 上搜索过,发现所有的 crud 操作示例都只有 ORC 文件。所以想知道我们是否可以对文本文件做同样的事情,或者是否需要对语法进行任何更改。 提前致谢。

【问题讨论】:

【参考方案1】:

非 ACID 模式下 CRUD 操作的典型模板:

C:insert是一样的(可以来自select)

INSERT INTO TABLE table_name VALUES... or SELECT FROM ...

R:这很简单

SELECT * FROM TABLE table_name WHERE ...

U: 使用 从自身中选择 写入整个表或分区(使用连接来更新其他表中的值)。使用 CASE 语句更新列。

INSERT OVERWRITE TABLE table_name [PARTITION(key=value)] 
SELECT --update columns using CASE
       case when col=some_value then some_other_value end as col,
       ...
       case when coln=some_value then some_other_value end as coln,
       col_x --not updated column
  FROM table_name [WHERE partition_key=value]
       JOIN...

D:这是使用使用过滤器从自身中选择来重写整个表或分区。可与更新结合使用。

INSERT OVERWRITE TABLE table_name [PARTITION(key=value)] 
SELECT *
  FROM table_name [WHERE partition_key=value]
WHERE --Filter out records you want to delete

另外请阅读这个关于MERGE的答案。

请参阅Hive DML 上的手册。

【讨论】:

以上是关于我们可以对 hive 中的“文本文件”执行 crud 操作吗的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 AWS lambda 函数以对不同 aws 子账户中的 dynamodb 表执行 crud 操作?

对 Hive 表执行验证和检查(不能重复)

Hadoop基础(五十):压缩和存储

我们可以从 Hive 中的自定义 UDF 运行查询吗?

hive sql的执行及编译过程

Hive表操作一