亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive3怎么使用代理鍵

發布時間:2021-07-12 16:39:46 來源:億速云 閱讀:172 作者:chen 欄目:大數據

這篇文章主要介紹“Hive3怎么使用代理鍵”,在日常操作中,相信很多人在Hive3怎么使用代理鍵問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hive3怎么使用代理鍵”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

您可以使用內置的SURROGATE_KEY用戶定義函數(UDF)在將數據輸入表中時自動為行生成數字ID。生成的代理鍵可以替換多個復合鍵。
Hive僅在ACID表上支持代理鍵,如以下表類型矩陣中所述:
表類型
ACID
代理鍵
文件格式
插入
更新/刪除
托管:CRUD事務性
ORC
托管:僅插入式交易
任何
沒有
托管:臨時
沒有
沒有
任何
沒有
外部
沒有
沒有
任何
沒有
您要使用代理鍵聯接的表不能具有需要轉換的列類型。這些數據類型必須是原生類型,例如INT或STRING。
使用生成的鍵進行聯接比使用字符串進行聯接要快。使用生成的鍵不會通過行號將數據強制進入單個節點。您可以生成鍵作為自然鍵的抽象。代理鍵比UUID具有優勢,后者速度較慢且具有概率。
SURROGATE_KEY UDF為您插入表中的每一行生成唯一的ID。它基于分布式系統中的執行環境生成鍵,其中包括許多因素,例如內部數據結構,表的狀態和最后的事務ID。代理鍵生成不需要計算任務之間的任何協調。
UDF不帶參數或帶兩個參數:
  • Write Id bit

  • Task ID bit

1.  以具有  ACID  屬性的默認  ORC  格式創建一個學生表。
CREATE TABLE students (row_id INT, name VARCHAR(64), dorm INT);
2.  將數據插入表中。例如:
INSERT INTO TABLE students VALUES (1, 'fred flintstone', 100), (2, 'barney rubble', 200);
3.  使用  SURROGATE_KEY UDF  創建學生表的版本。
CREATE TABLE students_v2 (`ID` BIGINT DEFAULT SURROGATE_KEY(), row_id INT, name VARCHAR(64),  dorm INT,  PRIMARY KEY (ID) DISABLE NOVALIDATE);
4.  插入數據,它會自動為主鍵生成代理鍵。
INSERT INTO students_v2 (row_id, name, dorm) SELECT * FROM students;
5.  看一下代理鍵。
SELECT * FROM students_v2;+-----------------+---------------------+-------------------+-------------------+| students_v2.id  | students_v2.row_id  | students_v2.name  | students_v2.dorm  |+-----------------+---------------------+-------------------+-------------------+| 1099511627776   | 1                   | fred flintstone   | 100               || 1099511627777   | 2                   | barney rubble     | 200               |+-----------------+---------------------+-------------------+-------------------+
6.  將代理鍵作為外鍵添加到另一個表(例如  student_grades  表)中,以加快表的后續聯接。
ALTER TABLE student_grades ADD COLUMNS (gen_id BIGINT); MERGE INTO student_grades g USING students_v2 s ON g.row_id = s.row_idWHEN MATCHED THEN UPDATE SET gen_id = s.id;
現在,您可以在代理鍵上實現快速聯接。

到此,關于“Hive3怎么使用代理鍵”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜新| 农安县| 曲麻莱县| 三门县| 永城市| 仁怀市| 新闻| 巧家县| 林甸县| 泸水县| 华安县| 南投市| 宁安市| 乌兰浩特市| 靖安县| 临城县| 英吉沙县| 新晃| 揭西县| 崇明县| 扶沟县| 河津市| 海盐县| 贵阳市| 全椒县| 苏尼特左旗| 衡水市| 张家界市| 高碑店市| 榆林市| 西充县| 阳信县| 桦甸市| 延川县| 鹰潭市| 新和县| 习水县| 红安县| 屏边| 宿松县| 贵阳市|