Pingo工作空間建表方式一:
CREATE TABLE `dw.acoustics`.`test20191220`
(`prod_code` string ,
`ball_code` string COMMENT '',
`circle_code` string COMMENT '',
`zp_carrier_code_1` string COMMENT '',
`zp_carrier_code_2` string COMMENT '',
`zp_carrier_code_3` string COMMENT '',
`dm_carrier_code_1` string COMMENT '',
`dm_carrier_code_2` string COMMENT '',
`processid` int COMMENT '',
`routeid` int COMMENT '',
`testproject` string COMMENT '',
`frevalue` string COMMENT '',
`frevalue_new` string,
`fre_option` string,
`fre_value` string,
`ispass` int COMMENT '',
`servertime` string COMMENT ''
)
/* 如果需要創建分區表增加如下設置 */
PARTITIONED BY (`date` string COMMENT '',`hour` string COMMENT '')
Pingo建表方式二(非分區表):
create table `dw.acoustics`.`alx_aly_all201912` as
select * from ods.iot.iot_2080_mesdcp.iot_2080_mesdcp_alx_aly_all where date=20191219 limit 10
Palo建表語句(推薦使用DUPLICATE模式):
CREATE TABLE data_research.`alx_aly_all_001` (
`id` varchar(100) COMMENT "",
`xyrownum` varchar(100) COMMENT "",
`x1` varchar(100) COMMENT "",
`y1` varchar(100) COMMENT "",
`x2` varchar(100) COMMENT "",
`y2` varchar(100) COMMENT "",
`date` varchar(100) COMMENT "",
`hour` varchar(100) COMMENT "",
`insert_time` datetime COMMENT ""
) ENGINE=OLAP
DUPLICATE KEY(`id`,`xyrownum`)
DISTRIBUTED BY HASH(`id`) BUCKETS 10
PROPERTIES (
"storage_type" = "COLUMN"
);
往pingo中寫入數據
alter table dw.acoustics.2050_mea_f_t_zongbiao_analysisdata add if not exists partition(date='{DATE}' ,hour='{HOUR}');
insert overwrite table dw.acoustics.2050_mea_f_t_zongbiao_analysisdata partition(date='{DATE}' ,hour='{HOUR}')
select
a.prod_code,
a.ball_code
from (select * from ods.acoustics.sfc_2050_sfc1216j.2050_tb_txtcollect_zongbiao_all_total a where date='{DATE}' and hour='{HOUR}' and prod_code is not null ) a
inner join
(select id,
test_id,
sn,
productnumber,
servertime from dw.acoustics.2050_mea_f_t_analysisdata where date='{DATE}' and sn is not null) b
on a.prod_code = b.sn
Palo導入數據插件配置樣例:
{
'job_info': { # Job信息
'database_name': 'data_research', # (需要配置)Palo數據庫名字
'data_label': 'alx_aly_all_001{%Y%m%d%H%M}', # (需要配置)導入的label; 必須包含時間宏,保證運行的批次唯一性
'task_info': { # 任務信息的配置; 可選; 包含以下三個:
'timeout_second': 3600, # 任務超時時間
'exec_mem_limit': 32212254720,
'max_filter_ratio': 0.00, # 可容忍數據被過濾比例
'cluster': 'szwg-ecomon' # 任務執行隊列; 線上任務都設置爲"szwg-ecomon"
},
'broker_info': {
'broker_name' : 'hdfs', #broker 的名稱 show proc '/brokers'
'username' : '', # username 和 password 爲通過簡單認證訪問hdfs所需用戶名密碼,如果沒有,可以不設置。
'password' : '',
'broker_property' : { # broker的property,如果沒有可不設。這裏的具體設置可以通過 help broker load 命令查看,如設置 HA,設置 kerberos 認證信息等。這裏舉例配置 hadoop ha 的配置。其中 bdos,nn1, nn2 需要改成對應hdfs環境配置裏的名稱。
'dfs.nameservices' : 'bdos',
'dfs.namenode.rpc-address.bdos.nn1' : 's27.dwh.com:8020',
'dfs.namenode.rpc-address.bdos.nn2' : 's28.dwh.com:8020',
'dfs.ha.namenodes.bdos' : 'nn1,nn2'
}
},
'table_families': # 要導入數據的table配置信息; 可一次導入數據到多個table
[
{
'table_family_name': 'alx_aly_all_001', # (需要配置)要導入palo庫數據table的名字
'sources':
[
{
'file_urls': [ # (需要配置)要導入數據的存放路徑信息。hdfs_url、base_url、(udw_table及udw_partition)三者需要指定一個。hdfs_url就是原來的base_url。
{
#'hdfs_url': 'hdfs://szwg-ecomon-hdfs.dmop.baidu.com:54310/xxx/xxx/{%Y%m%d%H%M}/*',
'base_url': 'hdfs://bdos/pfs/pingo/warehouse/dw/acoustics.db/alx_aly_all201912/*',
#'udw_table': 'default.udwetl_wiseps_display', #udw的表名。udw_table和udw_partition需要一起使用
#'udw_partition': 'event_action=wiseps_display.event_day={%Y%m%d}', #udw的分區名
'batch_offset': 0, # 等同於Palo數據檢查中的"batch_time_start_offset"
'batch_limit': 0, # 等同於Palo數據檢查中的"batch_time_end_offset"
'frequency': 86400, # 等同於Palo數據檢查中的"batch_time_step"
},
],
'column_names':['id','x1','y1','x2','y2','xyrownum','date','hour'], # (需要配置)table的列名; 必須和要pingo表對應的數據文件中列的順序一致
'line_end': 'CR', # 要導入數據文件的行分隔符; 可以是: CRLF, CR, LF (windows,linux和mac的換行符)
'column_separator': '\x01', # 要導入數據文件的列分隔符
'is_negative': False, # 是否將要導入數據文件中的數據取反後,再導入Palo; 一般設置爲False
'file_url_redirection': False, # 以負的形式導入備份數據
#'partition': ['p1', 'p2'], # 按分區導入數據
#'settings': ['d_year=default_value("3")'], # 設置導入屬性,例如默認值
},
]
},
]
},
'palo_db_conf': { # Palo的DM機器配置信息
'host': '10.133.0.19', # DM機器的名字
'port': 9021, # DM機器的端口
'username': 'doris', # Palo用戶名
'password': '[email protected]', # Palo用戶密碼
},
#'hadoop_conf': { # Hadoop集羣的配置信息
# 'backup_cluster': 'hdfs://namenode:port/', # backup的hdfs的地址
# 'backup_cluster_ugi': 'xxx,xxx', # 存放備份數據的Hadoop集羣的ugi
# 'backup_data_path': 'hdfs://szwg-ecomon-hdfs.dmop.baidu.com:54310/xxx/xxx/xxxx' # 存放備份數據的目錄; 不能包含時間宏; 只需寫到目錄
#}
}