將資料匯入kudu表(建立臨時hive表,從hive匯入kudu)步驟

shengqi_0323發表於2020-09-24

步驟一 hue中選擇impala,建立kudu表(注意:hue中選擇hive無法建立kudu表,因為hive不支援)

步驟二 hue中選擇hive,建立hive臨時表

drop table dim_bi_productspe_scd_hive;
CREATE TABLE if not exists dim_bi_productspe_scd_hive(
      BIProductSpeKey            bigint       COMMENT 'BI設計統一SpeKey'
     ,BIProductSpeID             bigint       COMMENT 'BI設計統一SpeID'
     ,ProductSpecId              bigint       COMMENT '產品規格ID'
     ,ownerType                     int       COMMENT '貨主型別'
     ,ownerid                    bigint       COMMENT '貨主ID'
     ,CityId                        int       COMMENT '倉庫城市 ID'
     ,RealWarehouseId               int       COMMENT '實際倉庫ID'
     ,TotalCount_MinUnit         double       COMMENT 'SCM庫存小單位數量'
     ,TotalCount_MaxUnit         double       COMMENT 'SCM庫存大單位數量'
     ,CreateTime              timestamp       COMMENT 'SCM庫存記錄最早建立時間'
     ,lastupdatetime          timestamp       COMMENT 'SCM庫存記錄最後更新時間'


     ,ProductInfoID                bigint      COMMENT '產品資訊ID'
     ,SpeName                      string      COMMENT '包裝名稱:(6瓶/件)'
     ,SpeInfoMaxUnit               string      COMMENT '包裝規格大單位'
     ,SpeInfoMinUnit               string      COMMENT '包裝規格小單位'
     ,SpeInfoQuantity              double      COMMENT '包裝規格大小單位轉換系數'

     ,BrandName                    string      COMMENT '品牌名稱'
     ,StatisticsCategoryName       string      COMMENT '品類'
     ,productInfoName              string      COMMENT '產品名稱'
     ,OriginalPlace                string      COMMENT '原產地'
     ,ProductInfoStatusID             int      COMMENT '產品資訊狀態ID:上架(1), 下架(0), 廢棄(-3)'
     ,ProductInfoStatus            string      COMMENT '產品資訊狀態:上架(1), 下架(0), 廢棄(-3)'
     ,BottleCode                   string      COMMENT '瓶碼'
     ,ProductCode                  string      COMMENT '產品碼'
     ,packagingCode                string      COMMENT '箱碼'
     ,ProductInfoTypeID               int      COMMENT '產品資訊型別:統採獨家(0), 統採非獨家(1), 非統採(2)'
     ,ProductInfoType              string      COMMENT '產品資訊型別:統採獨家(0), 統採非獨家(1), 非統採(2)'
     ,ProductStatisticsClass       bigint      COMMENT '二級產品統計分類'
     ,SecondStatisticsClass        bigint      COMMENT '二級產品統計分類'
     ,ShopId                       bigint      COMMENT '經銷商ID'
     ,ShelfLifeLongTime           tinyint      COMMENT '保質期是否長期 0 非長期 1長期'
     ,PackageType                 tinyint      COMMENT '拆包型別:0不拆包,1拆包'
     ,IsProcess                   tinyint      COMMENT '是否可以加工 0:不可以 1:可以'
     ,StorageType                 tinyint      COMMENT '儲存條件 0:常溫 1:冷藏 2:冷凍'

     ,ERPMinUnitCostPrice         double       COMMENT 'ERP小單位成本'
     ,ERPMaxUnitCostPrice         double       COMMENT 'ERP大單位成本'

     ,FirstDisPlayCategoryId         int       COMMENT '交易系統一級展示類目ID'
     ,FirstDisPlayCategory        string       COMMENT '交易系統一級展示類目名稱'
     ,SecondDisPlayCategoryId        int       COMMENT '交易系統二級展類示目ID'
     ,SecondDisPlayCategory       string       COMMENT '交易系統二級展類示目名稱'
     ,ThirdDisPlayCategoryId         int       COMMENT '交易系統三級展類示目ID'
     ,ThirdDisPlayCategory        string       COMMENT '交易系統三級展類示目名稱'
     ,BrandID                       int       COMMENT '品牌ID'
     ,ProductBusinessClassID        int       COMMENT '產品業務分類ID'
     ,ProductBusinessClass       string       COMMENT '產品業務分類'
     ,UnitPriceClassID              int       COMMENT '單價類別ID'
     ,UnitPriceClass             string       COMMENT '單價類別'

    ,IsValid                     tinyint       COMMENT '記錄是否在生命週期'
    ,ValidFrom                 timestamp       COMMENT '記錄生命週期開始時間'
    ,ValidTo                   timestamp       COMMENT '記錄生命週期結束時間'
    ,ETLCreateTime             timestamp       COMMENT 'ETL資料載入時間'
    ,ETLLastUpdateTime         timestamp       COMMENT 'ETL資料最後更新時間'
)
partitioned by(`day` string)
ROW FORMAT DELIMITED
-- FIELDS TERMINATED BY '\001'
FIELDS TERMINATED BY ',' -- 注意這裡換成csv檔案中列間隔符逗號','
TBLPROPERTIES('skip.header.line.count'='1');

步驟三 上傳檔案到伺服器

SecureCRT 進入指定上傳目錄,ALT+P快捷鍵進入SFTP傳輸介面。

步驟四 將伺服器中的上傳檔案載入進hive臨時表(hue中選擇hive進行)

注意:是追加寫入

load data local inpath '/tmp/export_import/query-impala-93995.csv' overwrite into table dim_bi_productspe_scd_hive partition(day='20200922');

步驟五 將hive臨時表中的資料upsert 到kudu表中(hue中選擇impala進行)

建議使用upsert而非insert

upsert into table dim_bi_productspe_scd (
BIProductSpeKey        
,BIProductSpeID         
,ProductSpecId          
,ownerType              
,ownerid                
,CityId                 
,RealWarehouseId        
,TotalCount_MinUnit     
,TotalCount_MaxUnit     
,CreateTime             
,lastupdatetime         
,ProductInfoID             
,SpeName                   
,SpeInfoMaxUnit            
,SpeInfoMinUnit            
,SpeInfoQuantity           
,BrandName             
,StatisticsCategoryName
,productInfoName       
,OriginalPlace         
,ProductInfoStatusID   
,ProductInfoStatus     
,BottleCode            
,ProductCode           
,packagingCode         
,ProductInfoTypeID     
,ProductInfoType       
,ProductStatisticsClass
,SecondStatisticsClass 
,ShopId                
,ShelfLifeLongTime        
,PackageType              
,IsProcess                
,StorageType              
,ERPMinUnitCostPrice      
,ERPMaxUnitCostPrice      
,FirstDisPlayCategoryId 
,FirstDisPlayCategory   
,SecondDisPlayCategoryId
,SecondDisPlayCategory  
,ThirdDisPlayCategoryId 
,ThirdDisPlayCategory   
,BrandID                
,ProductBusinessClassID 
,ProductBusinessClass   
,UnitPriceClassID       
,UnitPriceClass         
,IsValid                 
,ValidFrom               
,ValidTo                 
,ETLCreateTime           
,ETLLastUpdateTime
) 
select
BIProductSpeKey        
,BIProductSpeID         
,ProductSpecId          
,ownerType              
,ownerid                
,CityId                 
,RealWarehouseId        
,TotalCount_MinUnit     
,TotalCount_MaxUnit     
,CreateTime             
,lastupdatetime         
,ProductInfoID             
,SpeName                   
,SpeInfoMaxUnit            
,SpeInfoMinUnit            
,SpeInfoQuantity           
,BrandName             
,StatisticsCategoryName
,productInfoName       
,OriginalPlace         
,ProductInfoStatusID   
,ProductInfoStatus     
,BottleCode            
,ProductCode           
,packagingCode         
,ProductInfoTypeID     
,ProductInfoType       
,ProductStatisticsClass
,SecondStatisticsClass 
,ShopId                
,ShelfLifeLongTime        
,PackageType              
,IsProcess                
,StorageType              
,ERPMinUnitCostPrice      
,ERPMaxUnitCostPrice      
,FirstDisPlayCategoryId 
,FirstDisPlayCategory   
,SecondDisPlayCategoryId
,SecondDisPlayCategory  
,ThirdDisPlayCategoryId 
,ThirdDisPlayCategory   
,BrandID                
,ProductBusinessClassID 
,ProductBusinessClass   
,UnitPriceClassID       
,UnitPriceClass         
,IsValid                 
,ValidFrom               
,ValidTo                 
,ETLCreateTime           
,ETLLastUpdateTime
from dim_bi_productspe_scd_hive; 

相關文章