HoloStudio与DataWorks无缝连通,您可以通过HoloStudio将MaxCompute数据导入Hologres,并基于DataWorks的底层能力,前往DataWorks进行定时调度,实现周期性导入数据至Hologres。本文为您介绍如何将MaxCompute源表数据导入Hologres进行周期性调度。
HoloStudio已下线,详情请参见DataWorks HoloStudio下线公告。
操作步骤
准备MaxCompute表数据。
准备一张MaxCompute数据源表,您可以参考MaxCompute创建表进行建表,也可以直接从数据地图中选用一张表。示例选用数据地图中已创建的表,其建表DDL语句如下。
CREATE TABLE IF NOT EXISTS bank_data_odps ( age BIGINT COMMENT '年龄', job STRING COMMENT '工作类型', marital STRING COMMENT '婚否', education STRING COMMENT '教育程度', card STRING COMMENT '是否有信用卡', housing STRING COMMENT '房贷', loan STRING COMMENT '贷款', contact STRING COMMENT '联系途径', month STRING COMMENT '月份', day_of_week STRING COMMENT '星期几', duration STRING COMMENT '持续时间', campaign BIGINT COMMENT '本次活动联系的次数', pdays DOUBLE COMMENT '与上一次联系的时间间隔', previous DOUBLE COMMENT '之前与客户联系的次数', poutcome STRING COMMENT '之前市场活动的结果', emp_var_rate DOUBLE COMMENT '就业变化速率', cons_price_idx DOUBLE COMMENT '消费者物价指数', cons_conf_idx DOUBLE COMMENT '消费者信心指数', euribor3m DOUBLE COMMENT '欧元存款利率', nr_employed DOUBLE COMMENT '职工人数', y BIGINT COMMENT '是否有定期存款' );
新建外部表。
进入HoloStudio,在PG管理或SQL Console中新建一张外部表,用于映射MaxCompute源表数据。示例新建外部表的SQL语句如下。
begin; CREATE FOREIGN TABLE "public"."bank_data_foreign_holo" ( "age" int8, "job" text, "marital" text, "education" text, "card" text, "housing" text, "loan" text, "contact" text, "month" text, "day_of_week" text, "duration" text, "campaign" int8, "pdays" float8, "previous" float8, "poutcome" text, "emp_var_rate" float8, "cons_price_idx" float8, "cons_conf_idx" float8, "euribor3m" float8, "nr_employed" float8, "y" int8 ) SERVER odps_server OPTIONS (project_name 'odps_4_holoworkshop_dev', table_name 'bank_data_odps'); COMMIT;
OPTIONS的连接参数说明如下表所示。
参数
描述
project_name
MaxCompute的项目名称。
table_name
MaxCompute的表名称。
新建存储表。
在HoloStudio中新建一张用于接收并存储数据的真实存储表。字段类型需要与外部表保持一致。示例DDL语句如下。
begin; create table if not exists bank_data_holo ( age int8, job text, marital text, education text, card text, housing text, loan text, contact text, month text, day_of_week text, duration text, campaign int8, pdays float8, previous float8, poutcome text, emp_var_rate float8, cons_price_idx float8, cons_conf_idx float8, euribor3m float8, nr_employed float8, y int8, ds text not null ) partition by list(ds); call set_table_property('bank_data_holo', 'orientation', 'column'); call set_table_property('bank_data_holo', 'time_to_live_in_seconds', '700000'); commit;
新建分区表的数据开发。
并单击上方新建Hologres开发,输入作业逻辑,单击保存--前往DataWorks调度,示例SQL如下:
在HoloStudio中,单击左侧导航栏的图标,进入数据开发页面。
鼠标悬停至图标,单击Hologres开发。
配置新建节点对话框的节点名称、目标文件夹及数据库参数。
单击提交,成功创建Hologres开发节点。
在新建的Hologres开发节点的编辑界面,输入如下创建分区表的数据开发语句。
create table if not exists bank_data_holo_1_${bizdate} partition of bank_data_holo for values in ('${bizdate}'); insert into bank_data_holo_1_${bizdate} select age as age, job as job, marital as marital, education as education, card as card, housing as housing, loan as loan, contact as contact, month as month, day_of_week as day_of_week, duration as duration, campaign as campaign, pdays as pdays, previous as previous, poutcome as poutcome, emp_var_rate as emp_var_rate, cons_price_idx as cons_price_idx, cons_conf_idx as cons_conf_idx, euribor3m as euribor3m, nr_employed as nr_employed, y as y, '${bizdate}' as ds from bank_data_foreign_holo;
单击顶部菜单栏左侧的,保存Hologres开发。
单击顶部菜单栏右侧的前往DataWorks调度,进入调度页面。
新建分区表的调度作业。
在DataWorks中新建Hologres节点。
单击前往DataWorks调度后,页面自动跳转至DataWorks的新建节点。您需要配置新建节点对话框的节点类型、节点名称及目标文件夹,创建Hologres节点。节点类型选择Hologres开发。
如果是重新执行已有作业,则可以不需要重新创建节点。
在新建的节点页面,单击更新节点版本,将分区表的信息同步至该节点。
配置调度信息。
在新建的节点页面,单击右侧导航栏的调度配置,配置调度参数。详情请参见调度参数支持的格式。
具体配置如下所示:
发布调度。
配置完调度参数,在新建节点页面的顶部菜单栏左侧,单击图标,保存调度配置。
在新建节点页面的顶部菜单栏左侧,单击图标,提交调度信息。
在新建节点页面的顶部菜单栏右侧,单击发布,前往任务发布页面。
在任务发布页面,选中当前任务,单击目标任务操作列的发布。发布包提交成功后,单击上方菜单栏运维中心进行手工补数据。
在确认发布对话框,单击发布。
发布包提交成功后,单击任务发布页面顶部菜单栏右侧的运维中心,进入运维中心。
在左侧导航栏,单击 ,勾选并单击目标任务名称。
在右侧编辑界面,鼠标右键单击目标任务节点,选择 。
根据业务实际情况,配置补数据对话框的各项参数。完成调度任务的发布。
任务执行成功后,返回HoloStudio。单击新建节点的图标,刷新当前页面。您可以在PG管理模块找到目标分区表,查看调度成功的分区表数据。
双击目标表名称,在表编辑页面单击数据预览,即可看到已成功导入的数据。
您也可以使用SQL语句查看父表或分区表的数据,示例如下。
SELECT * FROM bank_data_holo;