最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Apache?Hudi集成Spark?SQL操作hide表

 更新時(shí)間:2022年03月31日 10:37:20   作者:leesf  
這篇文章主要為大家介紹了Apache?Hudi集成Spark?SQL操作hide表,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

1. 摘要

社區(qū)小伙伴一直期待的Hudi整合Spark SQL的PR正在積極Review中并已經(jīng)快接近尾聲,Hudi集成Spark SQL預(yù)計(jì)會(huì)在下個(gè)版本正式發(fā)布,在集成Spark SQL后,會(huì)極大方便用戶對Hudi表的DDL/DML操作,下面就來看看如何使用Spark SQL操作Hudi表。

2. 環(huán)境準(zhǔn)備

首先需要將PR拉取到本地打包,生成SPARK_BUNDLE_JAR(hudi-spark-bundle_2.11-0.9.0-SNAPSHOT.jar)包

2.1 啟動(dòng)spark-sql

在配置完spark環(huán)境后可通過如下命令啟動(dòng)spark-sql

spark-sql --jars $PATH_TO_SPARK_BUNDLE_JAR  --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'

2.2 設(shè)置并發(fā)度

由于Hudi默認(rèn)upsert/insert/delete的并發(fā)度是1500,對于演示的小規(guī)模數(shù)據(jù)集可設(shè)置更小的并發(fā)度。

set hoodie.upsert.shuffle.parallelism = 1;
set hoodie.insert.shuffle.parallelism = 1;
set hoodie.delete.shuffle.parallelism = 1;

同時(shí)設(shè)置不同步Hudi表元數(shù)據(jù)

set hoodie.datasource.meta.sync.enable=false;

3. Create Table

使用如下SQL創(chuàng)建表

create table test_hudi_table (
  id int,
  name string,
  price double,
  ts long,
  dt string
) using hudi
 partitioned by (dt)
 options (
  primaryKey = 'id',
  type = 'mor'
 )
 location 'file:///tmp/test_hudi_table'

說明:表類型為MOR,主鍵為id,分區(qū)字段為dt,合并字段默認(rèn)為ts。

創(chuàng)建Hudi表后查看創(chuàng)建的Hudi表

show create table test_hudi_table

4. Insert Into

4.1 Insert

使用如下SQL插入一條記錄

 insert into test_hudi_table select 1 as id, 'hudi' as name, 10 as price, 1000 as ts, '2021-05-05' as dt

insert完成后查看Hudi表本地目錄結(jié)構(gòu),生成的元數(shù)據(jù)、分區(qū)和數(shù)據(jù)與Spark Datasource寫入均相同。

4.2 Select

使用如下SQL查詢Hudi表數(shù)據(jù)

select * from test_hudi_table

查詢結(jié)果如下

5. Update

5.1 Update

使用如下SQL將id為1的price字段值變更為20

update test_hudi_table set price = 20.0 where id = 1

5.2 Select

再次查詢Hudi表數(shù)據(jù)

select * from test_hudi_table

查詢結(jié)果如下,可以看到price已經(jīng)變成了20.0

查看Hudi表的本地目錄結(jié)構(gòu)如下,可以看到在update之后又生成了一個(gè)deltacommit,同時(shí)生成了一個(gè)增量log文件。

6. Delete

6.1 Delete

使用如下SQL將id=1的記錄刪除

delete from test_hudi_table where id = 1

查看Hudi表的本地目錄結(jié)構(gòu)如下,可以看到delete之后又生成了一個(gè)deltacommit,同時(shí)生成了一個(gè)增量log文件。

6.2 Select

再次查詢Hudi表

select * from test_hudi_table;

查詢結(jié)果如下,可以看到已經(jīng)查詢不到任何數(shù)據(jù)了,表明Hudi表中已經(jīng)不存在任何記錄了。

7. Merge Into

7.1 Merge Into Insert

使用如下SQL向test_hudi_table插入數(shù)據(jù)

 merge into test_hudi_table as t0
 using (
  select 1 as id, 'a1' as name, 10 as price, 1000 as ts, '2021-03-21' as dt
 ) as s0
 on t0.id = s0.id
 when not matched and s0.id % 2 = 1 then insert *

7.2 Select

查詢Hudi表數(shù)據(jù)

select * from test_hudi_table

查詢結(jié)果如下,可以看到Hudi表中存在一條記錄

7.4 Merge Into Update

使用如下SQL更新數(shù)據(jù)

 merge into test_hudi_table as t0
 using (
  select 1 as id, 'a1' as name, 12 as price, 1001 as ts, '2021-03-21' as dt
 ) as s0
 on t0.id = s0.id
 when matched and s0.id % 2 = 1 then update set *

7.5 Select

查詢Hudi表

select * from test_hudi_table

查詢結(jié)果如下,可以看到Hudi表中的分區(qū)已經(jīng)更新了

7.6 Merge Into Delete

使用如下SQL刪除數(shù)據(jù)

merge into test_hudi_table t0
 using (
  select 1 as s_id, 'a2' as s_name, 15 as s_price, 1001 as s_ts, '2021-03-21' as dt
 ) s0
 on t0.id = s0.s_id
 when matched and s_ts = 1001 then delete

查詢結(jié)果如下,可以看到Hudi表中已經(jīng)沒有數(shù)據(jù)了

8. 刪除表

使用如下命令刪除Hudi表

drop table test_hudi_table;

使用show tables查看表是否存在

show tables;

可以看到已經(jīng)沒有表了

9. 總結(jié)

通過上面示例簡單展示了通過Spark SQL Insert/Update/Delete Hudi表數(shù)據(jù),通過SQL方式可以非常方便地操作Hudi表,降低了使用Hudi的門檻。另外Hudi集成Spark SQL工作將繼續(xù)完善語法,盡量對標(biāo)Snowflake和BigQuery的語法,如插入多張表(INSERT ALL WHEN condition1 INTO t1 WHEN condition2 into t2),變更Schema以及CALL Cleaner、CALL Clustering等Hudi表服務(wù)。

以上就是Apache Hudi集成Spark SQL操作hide表的詳細(xì)內(nèi)容,更多關(guān)于Apache Hudi集成Spark SQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一次數(shù)據(jù)庫查詢超時(shí)優(yōu)化問題的實(shí)戰(zhàn)記錄

    一次數(shù)據(jù)庫查詢超時(shí)優(yōu)化問題的實(shí)戰(zhàn)記錄

    當(dāng)MySQL服務(wù)器出現(xiàn)異常(慢),首先要考慮是否因SQL語句引起數(shù)據(jù)庫慢,下面這篇文章主要給大家介紹了一次數(shù)據(jù)庫查詢超時(shí)優(yōu)化問題的實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2021-10-10
  • Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具配置詳解

    Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具配置詳解

    這篇文章主要介紹了Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具,通過示例代碼給大家講解了安裝phpmyadmin數(shù)據(jù)庫的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-03-03
  • 關(guān)于數(shù)據(jù)庫設(shè)計(jì)中主鍵問題的思考

    關(guān)于數(shù)據(jù)庫設(shè)計(jì)中主鍵問題的思考

    數(shù)據(jù)庫主鍵在數(shù)據(jù)庫中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫設(shè)計(jì)過程當(dāng)中常見的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點(diǎn),提出了相應(yīng)的解決問題的方法
    2013-08-08
  • SQL嵌套查詢總結(jié)

    SQL嵌套查詢總結(jié)

    這是我寫的一個(gè)結(jié)合UINON的嵌套查詢. 將五個(gè)方面的報(bào)表放到一個(gè)臨時(shí)表里,再從臨時(shí)表里,將所要的數(shù)據(jù)查詢出來.
    2008-10-10
  • 如何找回存儲(chǔ)在DBeaver連接中數(shù)據(jù)庫密碼

    如何找回存儲(chǔ)在DBeaver連接中數(shù)據(jù)庫密碼

    DBeaver數(shù)據(jù)庫連接工具是我用了這么久最好用的一個(gè)數(shù)據(jù)庫連接工具,擁有的優(yōu)點(diǎn),支持的數(shù)據(jù)庫多、快捷鍵很贊、導(dǎo)入導(dǎo)出數(shù)據(jù)非常方便,這篇文章主要給大家介紹了關(guān)于如何找回存儲(chǔ)在DBeaver連接中數(shù)據(jù)庫密碼的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Hive如何寫exist/in子句示例詳解

    Hive如何寫exist/in子句示例詳解

    這篇文章主要介紹了在Hive中使用EXISTS和IN子句進(jìn)行數(shù)據(jù)查詢的方法,EXISTS子句用于檢查子查詢是否至少返回一行記錄,而IN子句用于檢查某個(gè)值是否存在于指定的列表中,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • MyISAM與InnoDB索引實(shí)現(xiàn)對比詳解

    MyISAM與InnoDB索引實(shí)現(xiàn)對比詳解

    這篇文章主要給大家介紹了關(guān)于MyISAM與InnoDB索引實(shí)現(xiàn)對比的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 也許是被忽略的update語句(update技巧)

    也許是被忽略的update語句(update技巧)

    這篇文章主要介紹了也許是被忽略的update語句,update語句就僅僅這樣嗎?它的精髓它的原理是什么呢?我們通過例子來說明
    2014-08-08
  • Navicat恢復(fù)數(shù)據(jù)庫連接及查詢sql的完美解決辦法

    Navicat恢復(fù)數(shù)據(jù)庫連接及查詢sql的完美解決辦法

    因?yàn)楣窘o電腦加域,導(dǎo)致使用新的用戶賬戶,原先的很多配置都失效了,這篇文章主要介紹了Navicat恢復(fù)數(shù)據(jù)庫連接及查詢sql的解決辦法,需要的朋友可以參考下
    2023-08-08
  • 在PostgreSQL上安裝并使用擴(kuò)展模塊的教程

    在PostgreSQL上安裝并使用擴(kuò)展模塊的教程

    這篇文章主要介紹了在PostgreSQL上安裝并使用擴(kuò)展模塊的教程,作者在Ubuntu系統(tǒng)上給出演示,需要的朋友可以參考下
    2015-04-04

最新評論

泗水县| 平阴县| 吉隆县| 七台河市| 蒲城县| 内江市| 东兰县| 关岭| 宁城县| 阳高县| 磴口县| 宽甸| 饶平县| 牡丹江市| 三穗县| 巴东县| 图片| 岚皋县| 黄山市| 阿合奇县| 革吉县| 乌审旗| 邳州市| 惠东县| 新沂市| 海林市| 阳西县| 涿鹿县| 阿拉善右旗| 河北区| 林甸县| 涞水县| 绥芬河市| 弋阳县| 梁山县| 新密市| 凤庆县| 黔南| 正宁县| 上蔡县| 安义县|