pingo、palo建表及从pingo往palo数据库导入数据使用方式

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'   # 存放备份数据的目录; 不能包含时间宏; 只需写到目录
    #}
}

你可能感兴趣的:(大数据平台搭建)