Iceberg从入门到精通系列之三:创建Iceberg表、修改表结构、插入数据、删除表

这篇具有很好参考价值的文章主要介绍了Iceberg从入门到精通系列之三:创建Iceberg表、修改表结构、插入数据、删除表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建外部表

CREATE EXTERNAL TABLE iceberg_create1 (i int)
STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
TBLPROPERTIES('iceberg.catalog'='iceberg_hive');

describe formatted iceberg_create1;

二、创建内部表

CREATE EXTERNAL TABLE iceberg_create2 (i int)
STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
TBLPROPERTIES('iceberg.catalog'='iceberg_hive');

describe formatted iceberg_create2;

三、创建分区表

CREATE EXTERNAL TABLE iceberg_create3 (id int,name string)
PARTITIONED BY (age int)
STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
TBLPROPERTIES('iceberg.catalog'='iceberg_hive');

describe formatted iceberg_create3;
  • Hive语法创建分区表,不会在元数据创建分区,而是将分区数据转换为Iceberg标识分区。
  • 这种情况下不能使用Iceberg的分区转换,例如:days(timestamp),如果想要使用Iceberg格式表的分区转换标识分区,需要使用Spark或者Flink引擎创建表。
insert into iceberg_create3 values(1,'A',18);

四、修改表

只支持HiveCatalog表修改表属性,Iceberg表属性和Hive表属性存储在HMS中是同步的

ALTER TABLE iceberg_create1 SET TBLPROPERTIES('external.table.purge'='FALSE');

添加字段

ALTER TABLE iceberg_create1 ADD COLUMNS(j int);

五、插入数据

INSERT INTO iceberg_test values(1);

insert overwrite table iceberg_create1 select * from iceberg_create2;

六、删除表

DROP TABLE iceberg_create1;

七、完整创建、修改、插入数据、删除Iceberg表的例子

创建表,插入数据:

CREATE TABLE my_table (
  id INT,
  name STRING,
  age INT
) 
USING iceberg
PARTITIONED BY (age)
LOCATION 'hdfs:///data/my_table';

INSERT INTO my_table (id, name, age) VALUES (1, 'John Doe', 30);
INSERT INTO my_table (id, name, age) VALUES (2, 'Jane Doe', 28);
INSERT INTO my_table (id, name, age) VALUES (3, 'Bob Smith', 35);

修改添加字段:

ALTER TABLE my_table
ADD COLUMNS (hobby ARRAY<STRING>);

创建一张新表:

CREATE TABLE my_table_new (
  id INT,
  name STRING,
  age INT,
  hobby ARRAY<STRING>
) 
USING iceberg
PARTITIONED BY (age)
LOCATION 'hdfs:///data/my_table_new/';

使用INSERT INTO语句向该表中插入新数据:

该语句从原表my_table中筛选出年龄为35的记录,并将这些记录的字段值以及新字段hobby的值(使用ARRAY函数)插入到新表my_table_new中。注意,这里使用Iceberg HiveCatalog插入了新数据,而非在Hive中对现有数据进行修改。

INSERT INTO my_table_new
SELECT id, name, age, ARRAY('fishing', 'reading') AS hobby
FROM my_table
WHERE age = 35;

删除原来的表,重命名新表为旧表的名字:文章来源地址https://www.toymoban.com/news/detail-508019.html

DROP TABLE my_table;
ALTER TABLE my_table_new RENAME TO my_table;

到了这里,关于Iceberg从入门到精通系列之三:创建Iceberg表、修改表结构、插入数据、删除表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Iceberg从入门到精通系列之七:Flink SQL创建Catalog

    type:必须是iceberg catalog-type:内置了hive和hadoop两种catalog,也可以使用catalog-impl来自定义catalog。 catalog-impl:自定义catalog实现的全限定类名。如果未设置catalog-type,则必须设置。 property-version:描述属性版本的版本号。此属性可用于向后兼容,以防属性格式更改。当前属性版本

    2024年02月11日
    浏览(14)
  • Iceberg从入门到精通系列之二:Iceberg集成Hive

    理解Iceberg核心概念可以阅读博主下面这篇技术博客: Iceberg从入门到精通系列之一:Iceberg核心概念理解 拷贝Iceberg的jar包到Hive的auxlib目录中 启动hdfs 启动yarn 启动historyserver Hive的元数据服务是一种存储和管理Hive表格和数据定义的中央服务,它允许用户定义表格、分区和桶等元

    2024年02月12日
    浏览(12)
  • Iceberg从入门到精通系列之六:Flink集成Iceberg

    下载Flink: https://www.apache.org/dyn/closer.lua/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz 下载Iceberg flink jar包:iceberg-flink-runtime-1.17-1.3.0.jar https://iceberg.apache.org/releases/ 修改配置文件flink-conf.yaml local模式 修改workers 至此FLink成功集成Iceberg

    2024年02月16日
    浏览(10)
  • Iceberg从入门到精通系列之十六:Flink Iceberg Connector

    Apache Flink 支持直接创建 Iceberg 表,无需在 Flink SQL 中创建显式 Flink 目录。这意味着我们可以通过在 Flink SQL 中指定 ‘connector’=‘iceberg’ 表选项来创建一个 Iceberg 表,与 Flink 官方文档中的用法类似。 在 Flink 中,SQL CREATE TABLE 测试 (…)WITH (‘connector’=‘iceberg’, …) 会在当前

    2024年02月16日
    浏览(14)
  • Iceberg从入门到精通系列之十一:Flink DataStream读取Iceberg表

    streaming(false) :false batch方式 streaming(true):true streaming方式

    2024年02月12日
    浏览(11)
  • Iceberg从入门到精通系列之二十二:Spark DDL

    要在 Spark 中使用 Iceberg,请首先配置 Spark 目录。 Iceberg 使用 Apache Spark 的 DataSourceV2 API 来实现数据源和目录。 Spark 3 可以使用 USINGiceberg 子句在任何 Iceberg 目录中创建表: Iceberg会将Spark中的列类型转换为对应的Iceberg类型。详细信息请查看创建表的类型兼容性部分。 PARTITIONE

    2024年02月19日
    浏览(11)
  • Iceberg从入门到精通系列之十八:一篇文章深入了解Flink对Iceberg的支持

    Apache Iceberg 支持 Apache Flink 的 DataStream API 和 Table API。 功能支持 Flink 注意事项 SQL create catalog ✔️ SQL create database ✔️ SQL create table ✔️ SQL create table like ✔️ SQL alter table ✔️ 仅支持更改表属性,不支持列和分区更改 SQL drop_table ✔️ SQL select ✔️ 支持流式和批处理模式 SQ

    2024年02月16日
    浏览(10)
  • Strimzi从入门到精通系列之三:部署Kafka Connect

    Kafka Connect 是一个用于在 Apache Kafka 和其他系统之间传输数据的工具。例如,Kafka Connect 可能会将 Kafka 与外部数据库或存储和消息传递系统集成。 在Strimzi中,Kafka Connect以分布式方式部署。 Kafka Connect 也可以在独立模式下工作,但 Strimzi 不支持。 使用连接器的概念,Kafka Conn

    2024年02月13日
    浏览(8)
  • 数据结构从入门到精通——直接插入排序

    数据结构从入门到精通——直接插入排序

    直接插入排序是一种简单的排序算法,其工作原理是逐个将待排序元素插入到已排序序列中的适当位置,直到全部元素排序完毕。算法从第二个元素开始,将其与前面的元素进行比较,如果当前元素小于前一个元素,则将其插入到前一个元素之前,否则继续向前比较。重复此

    2024年03月21日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包