shell腳本中向hive動態分區插入數據

在hive上建表與普通分區表創建方法一樣;

 1 CREATE  TABLE `dwa_m_user_association_circle`(
 2   `device_number` string, 
 3   `oppo_number` string, 
 4   `prov_id_oppo` string, 
 5   `area_id_oppo` string, 
 6   `dealer_oppo` string, 
 7   `short_call_nums` bigint, 
 8   `long3_call_nums` bigint, 
 9   `long5_call_nums` bigint, 
10   `long10_call_nums` bigint, 
11   `short_total_nums` bigint, 
12   `long3_total_nums` bigint, 
13   `long5_total_nums` bigint, 
14   `long10_total_nums` bigint, 
15   `area_id` string)
16 PARTITIONED BY ( 
17   `month_id` string, 
18   `prov_id` string, 
19   `dealer` string)
20 ROW FORMAT DELIMITED 
21   FIELDS TERMINATED BY '|' 
22   NULL DEFINED AS '' 
23 STORED AS INPUTFORMAT 
24   'org.apache.hadoop.mapred.TextInputFormat' 
25 OUTPUTFORMAT 
26   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
27 LOCATION
28   'hdfs://beh/user/hive/warehouse/all_ana_pro.db/dwa_m_user_association_circle'
29 TBLPROPERTIES (
30   'numPartitions'='248', 
31   'numFiles'='648', 
32   'transient_lastDdlTime'='1542952067', 
33   'totalSize'='247584222644', 
34   'numRows'='0', 
35   'rawDataSize'='0')

?

在shell腳本中,需設置的參數:?

set hive.exec.dynamic.partition=true; ? ? ? ? ? ? ? ? ? ??#開啟動態分區,默認是false
set hive.exec.dynamic.partition.mode=nostrict; ? ?? #開啟允許所有分區都是動態的,否則必須要有靜態分區才能使用。

set hive.exec.max.created.files=1000000; ? ? ? ? ? ? #允許創建的最大文件數,當分區是2個或三個分區時,文件會被分成很多小文件,該設置就是將文件的最大數目設成100w;

 1 insert overwrite table ALL_ANA_PRO.dwa_m_user_association_circle  PARTITION (month_id=${v_month},prov_id,dealer) 
 2 select device_number,
 3         oppo_number  ,
 4         prov_id_oppo ,
 5         area_id_oppo ,
 6         dealer_oppo ,
 7         short_call_nums,
 8         long3_call_nums,
 9         long5_call_nums,
10         long10_call_nums,
11         sum(short_call_nums) over(distribute by device_number)  short_total_nums,
12         sum(long3_call_nums ) over(distribute by device_number) long3_total_nums,
13         sum(long5_call_nums) over(distribute by  device_number) long5_total_nums,
14         sum(long10_call_nums) over(distribute by device_number) long10_total_nums,
15         area_id      ,
16         prov_id      ,
17         dealer   
18 from 
19         (SELECT device_number,
20                 prov_id      ,
21                 area_id      ,
22                 dealer       ,
23                 oppo_number  ,
24                 prov_id_oppo ,
25                 area_id_oppo ,
26                 dealer_oppo  ,
27                 sum(case when t.bill_times < 60 then 1 else 0 end ) short_call_nums,
28                 sum(case when t.bill_times >180 then 1 else 0 end ) long3_call_nums,
29                 sum(case when t.bill_times >300 then 1 else 0 end ) long5_call_nums,
30                 sum(case when t.bill_times >600 then 1 else 0 end ) long10_call_nums
31         FROM ( SELECT prov_id      ,
32                       area_id      ,
33                       device_number,
34                       0 dealer     ,
35                       prov_id_oppo ,
36                       area_id_oppo ,
37                       oppo_number  ,
38                       dealer_oppo  ,
39                       bill_times
40         FROM   ALL_ANA_PRO.DWA_M_CALL_RING_BASE t
41         WHERE  month_id = '${v_month}'
42         AND    ticket_type = 1
43         AND    dealer_oppo > -1
44         UNION ALL
45         SELECT prov_id_oppo prov_id      ,
46               area_id_oppo area_id      ,
47               oppo_number device_number ,
48               dealer_oppo dealer        ,
49               prov_id prov_id_oppo      ,
50               area_id area_id_oppo      ,
51               device_number oppo_number ,
52               0 dealer_oppo             ,
53               bill_times
54         FROM   ALL_ANA_PRO.DWA_M_CALL_RING_BASE t
55         WHERE  month_id = '${v_month}'
56         AND    ticket_type = 1
57         AND    dealer_oppo > -1
58            ) t
59         GROUP BY
60               device_number,
61               prov_id      ,
62               area_id      ,
63               dealer       ,
64               oppo_number  ,
65               prov_id_oppo ,
66               area_id_oppo ,
67               dealer_oppo
68         ) t;

?這里,需要說明的是,向目標表插數:

insert overwrite table ALL_ANA_PRO.dwa_m_user_association_circle? PARTITION (month_id=${v_month},prov_id,dealer)
其中select語句中動態分區prov_id,dealer兩個字段一般在最后面;

?

轉載于:https://www.cnblogs.com/xiao02fang/p/10007008.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281562.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF效果第二百零二篇之TreeView帶連接線

前面文章中分享了TreeView支持多選;然而在項目上使用時,領導覺得不滿意:體現不了真正的從屬關系;既然領導都發話了;那就開整就行了;今天就再來個帶有連接線的TreeView效果:1、來看看TreeViewItem的Template:2、展開和收縮動畫:3、參考資料https://www.codeproject.com/tips/673…

ObjectTive C語言語法,[譯]理解 Objective-C 運行時(下篇)

本文來自網易云社區作者&#xff1a;宋申易所以到底 objc_msgSend 發生了什么&#xff1f;很多事情。看一下這段代碼&#xff1a;[self printMessageWithString:"Hello World!"];這實際上被編譯器翻譯成&#xff1a;objc_msgSend(self, selector(printMessageWithStr…

菜鳥學習MVC實錄:弄清項目各類庫的作用和用法

MVC模式即&#xff1a;模型&#xff08;Model&#xff09;-視圖&#xff08;View&#xff09;-控制器&#xff08;Controller&#xff09; Model &#xff08;模型&#xff09;&#xff1a;是應用程序中用于處理應用程序數據邏輯的部分。通常模型對象負責數據庫中存取數據View…

SSL服務器

2019獨角獸企業重金招聘Python工程師標準>>> SSL 是一個安全協議&#xff0c;它提供使用 TCP/IP 的通信應用程序間的隱私與完整性。因特網的 超文本傳輸協議&#xff08;HTTP&#xff09;使用 SSL 來實現安全的通信。 在客戶端與服務器間傳輸的數據是通過使用對稱算…

微軟Skype Translator將支持阿拉伯語即時語音翻譯

據美國科技時代網(Tech Times)3月9日報道&#xff0c;日前&#xff0c;微軟旗下即時翻譯軟件Skype Translator再添新語種&#xff0c;微軟宣布Skype Translator已經支持阿拉伯語。Skype用戶可通過使用阿拉伯語即時翻譯與朋友、家人以及海外商業伙伴進行交流。 據報道&#xff0…

是什么讓.NET7的Min和Max方法性能暴增了45倍?

簡介在之前的一篇文章.NET性能系列文章一&#xff1a;.NET7的性能改進中我們聊到Linq中的Min()和Max()方法.NET7比.NET6有高達45倍的性能提升&#xff0c;當時Benchmark代碼和結果如下所示&#xff1a;[Params(1000)] public int Length { get; set; }private int[] arr;[Globa…

html標記語言 --框架

html標記語言 --框架六、框架1、什么是框架 框架將瀏覽器劃分成不同的部分&#xff0c;每一部分加載不同的網頁 實現同一瀏覽器窗口中加載多個頁面的效果。 語法格式<frameset>.......</frameset>2. 屬性2.1 cols使用“像素數”和%分割左右窗口&#xff0c;“*” 表…

c語言兔子洞,數據結構水題選講 - osc_y08db3kb的個人空間 - OSCHINA - 中文開源技術交流社區...

[Ynoi2011]ODT\(O(nlog^2n)\) 的做法非常顯然直接把樹重鏈剖分一下&#xff0c;每個點維護輕兒子的平衡樹就行但是這題 \(1e6\) 的數據范圍使得 \(O(nlog^2n)\) 沒那么容易卡過去(當然很多人卡過去了考慮給一個點很多重兒子那么若一個點有 \(k\) 個重兒子&#xff0c;修改復雜度…

centos 7.x systemd service 配置方法整理

一、存放路徑/etc/systemd/system二、service配置整理2.1 zookeeper.service[Unit]DescriptionZooKeeper ServiceAftersyslog.targetAfternetwork.target[Service]#使用shell腳本啟動的要用forking模式TypeforkingUserzookeeperGroupzookeeper#腳本啟動ExecStart/usr/local/zoo…

MAVEN集成測試環境搭建

1. MAVEN SVN HUDSON SONAR集成測試環境搭建、1.1 軟件準備 Hudson、Jenkins、Sonar1.2 軟件安裝 說明&#xff1a;本例均使用將應用程序部署至web容器下&#xff0c;Hudson和Sonar有其他部署啟動方式&#xff0c;如有需要請自行使用&#xff0c;本文不做贅述。1.2.1 安裝hu…

ubus c語言例子,openwrt之ubus例子

好一個icrootLEDE:/# ubus call test_ubus helloworld {"id":1,"msg":"hi","array":["a","b"]}{"id": 1,"msg": "hi","shuzu": ["a","b"]}文件目…

使用Spring訪問Mongodb的方法大全——Spring Data MongoDB查詢指南

1.概述 Spring Data MongoDB 是Spring框架訪問mongodb的神器&#xff0c;借助它可以非常方便的讀寫mongo庫。本文介紹使用Spring Data MongoDB來訪問mongodb數據庫的幾種方法&#xff1a; 使用Query和Criteria類JPA自動生成的查詢方法使用Query 注解基于JSON查詢在開始前&#…

mysqldump導出備份數據庫報Table ‘performance_schema.session_variables‘ doesn‘t exist

今天在bash進行本地數據庫往云端數據庫導數據的時候&#xff0c;在本地導出.sql文件這第一步就出現了錯誤問題&#xff0c;導出sql文件的命令&#xff1a; 1 mysqldump -u 用戶名 -p 數據庫名 > xxx.sql 在做這一步將數據導出的時候報了這么一個錯誤&#xff0c; 1 mysqldu…

在Identity框架中使用RoleBasedAuthorization

本文將介紹在 Identity 框架中如何使用 Sang.AspNetCore.RoleBasedAuthorization[1] 庫。核心介紹Identity 和 jwt 的基本配置我們在這里不再贅述&#xff0c;可以參考最后的項目樣例。核心的代碼主要為 IRolePermission 的實現。internal class MyRolePermission : IRolePermi…

2016年印度公有云服務市場將達13億美元

根據IT咨詢公司Gartner最新調查數據顯示&#xff0c;2016年印度公有云服務市場預計將增長35.9%&#xff0c;達到13億美元。 增長最快的是云系統基礎設施即服務&#xff08;IaaS&#xff09;&#xff0c;2016年預計將增長45.5%&#xff1b;其次是平臺即服務&#xff08;PaaS&…

PAT 1042. 字符統計

1042. 字符統計 請編寫程序&#xff0c;找出一段給定文字中出現最頻繁的那個英文字母。 輸入格式&#xff1a; 輸入在一行中給出一個長度不超過1000的字符串。字符串由ASCII碼表中任意可見字符及空格組成&#xff0c;至少包含1個英文字母&#xff0c;以回車結束&#xff08;回車…

Magicodes.IE 2.7.0-beta發布

2.7.0-beta2022.10.27使用SixLabors.ImageSharp替代System.Drawing&#xff0c;感謝linch90 &#xff08;見pr#454&#xff09;2.6.92022.10.26fix: 動態數據源導出到多個sheet的問題 &#xff08;見#449&#xff09;2.6.82022.10.18Excel模板導出添加API&#xff0c;以支持通過…

光伏逆變器“領跑”:不止于技術

從無到有&#xff0c;從效率比拼到突破99%&#xff0c;在跟進速度上沒話說的國內光伏逆變器企業難免深陷“價格戰”、同質化的泥潭。隨著“領跑者”計劃躍居光伏主流&#xff0c;嗅到市場紅利的企業再次蜂擁而至。 目前&#xff0c;鑒衡認證發布的第一批光伏并網逆變器“領跑者…

Ubuntu 18.04上Qmmp安裝教程

Qmmp&#xff0c;一個開源的基于Qt的多媒體播放器。它具有多種音頻文件格式支持&#xff0c;DSP效果&#xff0c;視覺效果;輸出系統支持&#xff08;OSS4&#xff08;FreeBSD&#xff09;&#xff0c;ALSA&#xff08;Linux&#xff09;&#xff0c;Pulse Audio&#xff0c;JAC…

android自動跑馬燈,Android-最強跑馬燈

Android--最強跑馬燈Android 跑馬燈已經有很多版本&#xff0c;從最基本的TextView&#xff0c;到重寫TextView使TextView取消焦點限制&#xff0c;還有重寫TextView利用ScrollTo方法寫的&#xff0c;基本都能滿足一般需要。然而在使用過程中&#xff0c;發現一些意外---有時會…