开发者使用文档和场景汇总

上传人:daj****de 文档编号:147098424 上传时间:2022-09-01 格式:DOCX 页数:31 大小:141.74KB
收藏 版权申诉 举报 下载
开发者使用文档和场景汇总_第1页
第1页 / 共31页
开发者使用文档和场景汇总_第2页
第2页 / 共31页
开发者使用文档和场景汇总_第3页
第3页 / 共31页
资源描述:

《开发者使用文档和场景汇总》由会员分享,可在线阅读,更多相关《开发者使用文档和场景汇总(31页珍藏版)》请在装配图网上搜索。

1、开发者使用文档和场景汇总数据平台用户指南系统名称DP in DP项目负责人数据平台团队作者2014年4月10日文档提交日期修改记录修改人修改日期修改内容简介修改后No版本号张翼2014/4/10初始版本,使用Data.dp和现有的开发流程0.11张翼2014/6/3传输系统替换成galaxy.dp,其他部分做了补充和优化0.22许景楠2014/7/4新增后端日志入库流程0.331. 开发准备1.1组账号申请1.2熟悉开发环境3. 开发程序3.1开发测试DOL3.2 开发测试 MapReduce Job4. 程序上线过程4.1程序发布BU开发人员:4.2调度配置4.3同步表结构4.4预跑数据5.

2、 数据传输5.1 数据导入(MySQL, SQLServer 到 Hive)5.1.1新增传输5.1.2表结构变更处理5.2 后端日志接入(后端日志 至4 hive)5.2.1日志打印数据平台对接入的后端日志有一些规范,具体详见后端日志规范。后端日志规范包 括内容规范和格式规范,格式规范通过日志打印工具marin加以保证。5.2.1.1后端日志内容规范5.2.1.2后端日志格式规范5.2.1.3日志打印工具marin5.2.2申请后端日志入库到hdfs5.2.3测试环境下测试5.2.3.1建立线上组帐号目录和产品目录5.2.3.2生成ETL任务需要的配置文件并建表5.2.3.3测试ETL任务5

3、.2.4任务发布5.2.4.1配置文件发布5.2.4.2线下表同步到线上5.2.5任务配调度5.2.5.1 配置 doCheck 任务5.2.5.2 ETL任务配置5.2.5.3任务预跑5.3 数据导出(Hive 至U GP Report, GP Analysis)6.附录6.1 DOL开发参考6.1.1参考资料6.1.2运行方式6.1.3时间格式6.1.4 velocity中 的字符串比较6.2 MapReduce开发参考6.2.1参考资料6.2.2新手指南6.2.3进阶指南6.2.4本地测试6.2.5伪分布环境提交1.开发准备1.1组账号申请data.dDataDP调度系藐权限系统主数据系

4、统数据产品插件中心数据平台数据仓库权限用户蛆账号查看救据产品权限用户组账号管理用户组极限申请大众点评-主站PV/UV图大众点评-团购PV/UV 大众点评-移动FV/UV E兰w亡web仁二巳nt登录图1-1按图1-1点击用户组权限申请,进入组大众点评工作流平台帐号申请界面,按界面提示填写必要 信息,提交之后在”我发起的流程”中查看流程状态。组帐号申请通过之后,您将收到如下邮件:您发起的数据仓序权限申请蒲程:ACLDB-13060047已经亩批通过权限已开。此号:dataday_present密福:系统提示;为保证数据安全,账号请勿扩散。图1-2如邮件遗失,您也可以通过以下操作获取密码:Data

5、DP诺度戳主教括其茹 粗舌户品插件中心数据仓库根眼用户组账号查看DetaDP 权限条统 T的推产品机隰目户组低号菅旦教据食库权眼用户组摩号登言中用户组板眼申侑Hive web client录月户蛆机跟申肩Hive web client登录倒房出尸出使用用连组服号仙述|簟dwdev线下权限信息密酉於顷M2信息GD18-03-73-B-24-Bl图1-3申请权限之前请先了解需要使用到的表,在申请界面中填写相关信息。如暂时不确定需要使用哪 些数据,也可以后续申请。原则是后续开发中要使用到的数据必须先通过权限申请。开发环境建表权限请邮件至acladmin 进行单独申请。1.2熟悉开发环境请先登录跳板。

6、开发环境的IP为10.2.7.24,使用组帐号登录开发机器:ssh $线下组帐号名称10.2.7.24 -p58422进入组账号的HOME目录(cd),创建程序目录(如果已经创建,则次步可以省略),格式: $HOME/$线上组帐号名称/$产品或项目名称,其中”产品或项目名称“为可选,各业务线按需 创建,在”产品或项目名称“目录下,用户放置程序或DOL注意:开发环境以Hadoop作为认证方式,每次登录拿到的ticket有效期为一天,如出现执行hive,hadoop失败,请重新登录!2. 典型用户场景1. 数据导入:可选步骤;如果有需要的数据没有导入,可以使用Galaxy的传输工具配置导 入作业(

7、具体使用请参考5.1)2. 查询主数据,两个目的:a. 查询程序使用的数据是否都已经导入HIVEb. 查询如何使用模型数据(请点击链接访问新的主数据系统)3. 开发程序:开发DOL或MapReduce作业,并在开发环境测试DOL或MapReduce程序(具体使用参考3)4. 程序发布:程序发布到git (具体使用参考4.15. 配置调度:在调度系统中配置程序,定时运行程序(具体使用参考4.26. 同步表结构:从开发环境同步表结构,并在线上建表(具体使用参考4.37. 预跑数据:可选步骤;两个目的:a. 在线上验证作业正确性b. 补历史数据(具体使用参考4.4)8. 数据导出:可选步骤;将数据从

8、Hive导入GP Report或是GP Analysis (具体使用参考52)3. 开发程序3.1开发测试DOLDOL的命名规范:组账号.业务划分.表名.dol例:dwdev.dp.dpdim_dp_shop.dolDOL程序由Hive的配置和SQL组成,开发完DOL程序后需要将它放入对应的”产品或项目“目录 中,之后可以使用以下命令在开发环境中进行测试:sun velocity -g 线上组账号名称-p 产品或项目名称-dol DOL文件名-d 时间参数使用示例:sun velocity -g warehouse -p dol -dol dwdev.dp.dpdim_dp_shop.dol

9、-d 20131123.2 开发测试 MapReduce Job如果复杂的逻辑较难或无法使用Hive实现,用户可以自己实现MapReduce作业,开发完成之后 将程序放入对应的”产品或项目“目录中,之后需要使用shell脚本或是python脚本封装程序启动 的命令,shell脚本和python脚本的命名规范如下:shell脚本-组账号.业务划分.表名.shpython脚本-组账号.业务划分.表名.py例:shell 脚本-dwdev.dp.dpdim_dp_shop.sh pyhton 脚本-dwdev.dp.dpdim_dp_shop.py 之后可以使用系列命令在开发环境中进行测试:shel

10、l脚本:sun shell -g 线上组账号名称-p 产品或项目名称-f demo.sh 用户参数 python脚本:sun shell -g 线上组账号名称-p 产品或项目名称-f demo.py 用户参数关于如何开发一个DOL或MapReduce作业,请参考附录中的资料6.1 DOL开发参考6.2 MapReduce开发参考4. 程序上线过程4.1程序发布BU开发人员:Step 1: Clone 项目 data_analysis ( analysis.git),创建自己的分支data_analysis项目的组织结构与调度机器上目录组织结构基本相同:/线上组账号名称/产品或项目名/gitep

11、 2:加入自己的代码,push代码到仓库(如果没有push权限,请找模型同学:data-model 开通)Step 3:提交Pull Request,找模型的同学审核(请大家找自己对应的BU同学,或是赵宏),审核通过后会 merge至U master分支Step 4:登陆开发环境,发布程序登陆到开发机器上(10.2.7.24),运行下面的命令:sun publish -g group name其中group name对应data_analysis项目中的第一级目录名e.g. sun publish -g dwdev_online会把data_analysis项目中/dwdev_online/T

12、的所有内容传到调度机器的/data/deploy/dwdev_online/i 录下DW开发人员:步骤同BU开发人员,两点有所不同:项目使用:同步命令:使用sun publish -w即可Step1.初始化git配置 mac下使用要将/.ssh/id_rsa权限由默认改为400,否则clone会因权限太宽而失败 /.ssh/id_rsa I内容要拷贝到U 的个人 profile 下创建项目分支Step2.加入代码,push代码到仓库在预发环境测试,将dol代码跑通用建表工具,在线上环境建表(建表工具会读取预发换环境下的表schema,建表到线上 http:/data.dp/halley/hiv

13、e-tool.html),同时为各个列添加注释 加入dol文件代码到分支本地warehouse/dol将分支发布到gitlabStep3.发起分支合并请求,找人review,通过后分支将合并到竹竿Step4.发布dol,命令sun publish -w (将warehouse所有的dol同步到线上)az.参考 %E9%A1%B9%E7%9B%AEGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E4.2调度配置配置调度,填写此任务需要运行的线上帐号名称,以及产品名称可以为空,同时注明dol脚本名 称;如果之前你已经将程序发布到了调度机器上,那么“基本配置”里面的绝大多

14、数配置项系统会 自动帮你填上,你只需要根据你的任务的实际情况修改其中的配置项即可如果是DOL的作业,系统会分析DOL依赖的原表,并在“前驱依赖配置”自动预填生成原表的任 务,请确认依赖任务或加入新的前驱依赖任务DataDP 调度系统 权限系统 主数据系统 数据产品 数据质里 插件中心DateiDP 调度系统T新增任务1.导入酉置用户 且 ope nap _dev_or 1 二二已产品名 lid_hop_piG数据平台组可略过口口二名称 oEerLE2dtoin._jid_snop_pic . di2. 基点醒置3. 前驱愀赖甄置图3-2注:非dol job直接打开基本配置及前驱依赖配置,手工配

15、置相关参数。4.3同步表结构工具链接:http:/data.dp/halley/hive-tool.htmlStepl.在右侧数据需要同步的表名点击“确定”按钮,主界面就会显示出表格和字段的相关信息敖闵牛 M名表色如 dw_g l m 口 _w . n b开转查询.江竟事JH:1.支持有预找环境向绶上皿 建六,加字段引修独手氐奖见 L里学槌更认扣&志的璋三一史3. 表I?秣加字段空年量出中文 给全4. it上理泰磐缰用此工具r蓬用 该去兀法时分授极E上堪如紫E岂戳据拒名bi幸的注耗1蹈役 hdfs-/10.2-S AO 2/uac=?靠的类型EXIBKrLL_rJLEI*E开发岩 弦舞JSre

16、ater Than L3 Mont *艮嘛白.坟:由帐号i述下瓯帷号4?蟾情息存残指i参巍3 arDfiSorg-. pz.che a. ha.docp . hive,.2c?rg. apacie. hadoop. hive.列分隔符s格格式org-. apaciie . nadcop. hive 行分降符aStep2 .如果是外部表,用户可以修改真实数据的路径,另外,我们要求用户补全表的注释和每个 字段的注释,补全数据后点击“确定”按钮,系统会完成数据导入的过程琵的洋州信息Sk据库名hl毒的注传1球hdffl :/10.2 . . LOS/usar/苏的舅理EXTZaNAL_rABLE开壁者

17、烈觐d存僚周那Greater Than 13 Muat *埒*7佶白IEcacE flick ummustring-17aser_faaestringISus oir_pcjwfl itstring19wish_titlestring20&hoD_tyreint分区列的倍息序号列名类型注释1p_-oaX_dstring喘定4.4预跑数据在查看任务页面(http:/data.dp/halley/task-view.html )找到对应任务,点击预跑按钮。ItzaDF.,. EU,艳建5 5二1234521-H寿胡ftfirwIkfTXM 开发者所套UDKnliole10CO1Cix目ff(fl|

18、 精 |DataDP 眉唐素垓 帜用盅疲 圭会如矣疆 妆蛆唱 帷m 推件南心 常魏平台输入预跑时间段,开始时间和结束时间为左开右闭,有1天的偏移(小时级为1小时的偏移)下例为预跑2012-12-31的数据。皓束时间2013-02-025. 数据传输Galaxy系统链接5.1 数据导入(MySQL, SQLServer 到 Hive)5.1.1新增传输Step 1:数据源选择mysql,找到需要导入的表,点击”新增传输链接”Step 2:选择需要的“目标表类型”(如果是增量表,需要额外填写几项扩展信息),点击保存”即 可,系统会按照用户的配置自动创建wormhole任务,并把wormhole任务

19、配置到调度系统上(每天启动一次)如果你是高级用户,需要修改传输任务的wormhole相关的配置或是任务的相关配置,你可以点 击获取SQL/传输/调度信息”按钮,获取详细的信息,并在相应的部分中做出修改,修改完成后 请点击“保存”,你的修改就会被保存下来Table: AP-TracklngSSftffiSuccess: has load al cFg info.mysqi目标汽IShru目辱散据芥bi目标最名dpodE_.AP_Tract目标表斐亚全童宾5.1.2表结构变更处理如果你的传输任务的原表的表结构发生变化(新增字段,或者是修改字段名称),你可以通过下 面的流程自动处理目标表结构的修改和

20、传输任务配置的变化,具体步骤如下:Stepl.在作业查询页面找到需要变更的作业,在目标数据介质的标签上(Hive标签上)点右键, 弹出操作菜单,选择“修改”* 诂条煎 Tablfr. aDunt_ywrer_lin(orniaiion 爵张岸偷Ht:=本壬许齐。该赛字球特笙生顼是,SS斐代吾耳尉芯表甜掘源广演 mysql目际T演 hive目标如据庄 b目|f聿言匚户0虻导匚疝e目标4*0 UBS命教奇财祝置?壁翌酒句DE制? EI怜煮字匠的疑目怪知抠寺麻4hw2093117&179掘5Step2 .如果字段发生变化,将跳出如下对话框,”点击保存”即可;你可以点击获取SQL/传输/调度信息”按钮

21、,获取详细的信息,查看目标表结构和传输任务的变 化5.2后端日志接入(后端日志到hive)5.2.1日志打印数据平台对接入的后端日志有一些规范,具体详见后端日志规范。后端日志规范包括内容规范和 格式规范,格式规范通过日志打印工具marin加以保证。5.2.1.1后端日志内容规范后端日志内容规范定义了后端日志可能用到的公用字段common keys,并对这些common keys 的命名进行了规范,保证不同日志之间数据的一致性。5.2.1.2后端日志格式规范后端日志格式规范定义了后端日志在日志格式、传输、命名、存储上的规范,开发者只需要使用 数据平台提供的日志打印工具marin,即可符合格式规范

22、的内容。5.2.1.3日志打印工具marinMarin打印工具是用于保证后端日志格式规范的日志打印工具。请在代码里面加入marin打印工 具,在测试后发布上线,这样就能将日志打印到线上服务器的/data/applogs/$business/logs/$fileName.log 文件。业务方在定下需要打的字段后,请和模型的同学jingnan.xu/ryan/yujing.zou/wenjuan.gong review 一下。同时麻烦各位在数据平台BU合作开发需求上面登记一下需求5.2.2申请后端日志入库到hdfs请发邮件给 lantao.jin/jingnan.xu/ryan/yujing.zo

23、u/hong.zhao/wenjuan.gong,这一步是把线上服务器上已经打好的日志拉到hdfs上指定的路径INPUT_PATH。e.g.INPUT_PATH=$LOG_ROOT/dpods_log_mobile-location-service/$TO_PROCESS_DAY/$TO_PROCESS_HOUR这个路径将作为后续ETL任务的输入路径,需要在配置文件里面设置(配置文件可以通过工具自 动生成)其中$LOG_ROOT=/user/hive/warehouse/bi.db,是固定的前缀dpods_log_mobile-location-service 是由 dpods_log_$AP

24、PLICATION_NAME组成$TO_PROCESS_DAY表示天,比如2014-06-01,这个字段必须有$TO_PROCESS_HOUR表示小时,比如08点,如果是按天产生的日志,这个字段没有 一般情况不会碰到该路径被其他应用使用了,除非两个应用有相同的PPUCAT/ON NAME, 这种情况请联系lantao,修改hdfs上的路径,并请自行修Config文件INPUT PATH里的 $APPL/CAT/ON NAME。请在邮件里面说明:该日志的主要作用打印周期,是天级还是小时级,目前我们大部分都是小时级入库应用的名称以及线上服务器的名称,如果有多台线上服务器,请说明日志文件在线上服务器

25、的路径日志文件的名称后续lantao同学会通过blackhole工具帮忙把日志拉到hdfs。如果后续有服务器扩容或者缩容,请务必通知lantao/jingnan,否则我们不保证数据完整性。5.2.3测试环境下测试这一步主要是执行ETL mapreduce任务,对原始日志进行解析转换,以便最后hive表使用。 mapreduce任务的输入路径即为前面的INPUT_PATH,输出路径为 OUTPUT_PATH=$hive_home/dpdw_mobile-location-service_log/$TO_PROCESS_DAY/$TO_PROCESS_HOUR其中$hive_home在测试环境的值

26、为/user/bipredeploy/warehouse/bi.db,表示写到线下,在线上 环境的值为/user/hive/warehouse/bi.db,表示写到线上,这个前缀是固定的。dpdw_mobile-location-service_log 是由 dpdw_$APPLICATION_NAME_log 组成。 $TO_PROCESS_DAY, $TO_PROCESS_HOUR 的含义与 INPUT_PATH 一样。一般情况也不会碰到该路径被其他应用使用了,除非两个应用有才$APPL/CAT/ON NAME, 这种情况请自行修改配置文件的OUTPUT PATH里的$APPL/CAT/O

27、N NAME。5.2.3.1建立线上组帐号目录和产品目录参考4.1程序发布,以自己的线下帐号登录10.2.7.24测试环境,Clone项目data_analysis ( analysis),在$HOME/data_analysis/目录下面,建立 线上组帐号文件夹和产品文件夹。线上组帐号请咨询王冰,产品名用户自己定义,一般可以用 应用名。e.g.以mobile-location-service应用为例,假设以dwdev帐号登录10.2.7.24,建立对应的组帐号和产 品文件夹,如下:/data/home/dwdev/data_analysis/bicron/mobile-location-we

28、b其中/data/home/dwdev/data_analysis 为$HOME/data_analysis 路径,bicron 为线上组帐号, mobile-location-service 为产品名5.2.3.2生成ETL任务需要的配置文件并建表使用命令sun marin -g组帐号-p产品-a应用名称-c周期,产生ETL任务需要的配置文件,并 自动在测试环境下建表。e.g.输入命令 sun marin -g bicron -p mobile-location-service -a mobile-location-service -c hour 其中命令参数-g对应组帐号-p对应产品-a为

29、应用名称(可以和-p的值一样)-c表示周期(hour表示小时/day表示天)执行完后会生成以下几个文件:config 文件:dpdw_mobile-location-service_configbean 文件:dpdw_mobile-location-service_bean.xmlschema 文件:dpdw_mobile-location-service_schema.xml建表文件:dpdw_mobile-location-service_log.sql其中bean文件和schema文件是执行ETL mapreduce任务需要的配置文件,用户不需要改。 config文件用户根据需要进行修

30、改,默认不用改。e.g. config 文件INPUT_PATH=$LOG_ROOT/dpods_log_mobile-location-service/$TO_PROCESS_DAY/$TO_PROCESS_HOUR OUTPUT_PATH=$hive_home/dpdw_mobile-location-service_log/$Td_PROCESS_DAY/$Td_PROCESS_HOUR PROCESSOR=com.dianping.pandora.core.processor.LzoSimpleProcessorMODE=tableVERSION=1.0.1.4-SNAPSHOTSCH

31、EMA=dpdw_mobile-location-service_schema.xmlBEANS=dpdw_mobile-location-service_bean.xmlPERIOD=hourdoLoadO while truedo$HIVE_CMD -e use bi;alter table dpdw_mobile_location_service_log drop if exists partition(hp_stat_date=$TO_PROCESS_DAY, hp_stat_hour=$TO_PROCESS_HOUR);alter table dpdw_mobile_location

32、_service_log add if not exists partition(hp_stat_date=$TO_PROCESS_DAY, hp_stat_hour=$TO_PROCESS_HOUR) location $OUTPUT_PAtH;if 0 -eq 0 ; thenbreakfisleep 5doneJOB_NAME=MARIN_LOG_mobile-location-service-$TO_PROCESS_DAY-$TO_PROCESS_HOUR 其中INPUT_PATH/OUTPUT_PATH即ETL mapreduce任务的输入路径和输出路径,一般不用 改,除非路径已经被

33、其他应用使用。PROCESSOR, MODE,VERSION,SCHEMA,BEANS,PERIOD,JOB_NAME 都不需要改。doLoad函数是实现在ETL mapreduce任务跑完,将输出数据加载到hive中,除非目标表已经被 其他应用使用,否则也不需要改。目标表名默认是根据APPLICATION_NAME生成的,如果该表已被其他人使用,请自行建表(sh $建表文件 $新的表名)和doLoad函数里面的表名。在执行过程中输出相关提示信息:ETL输入检查:1. 如果打印日志还未拉到诚s,会提示hdfs input path not exist, ok.此时输入路径没有问题。后续把日志拉

34、到dfs后即可使用2. 如果打印日志已经拉到hdfs,或者目标路径已经被其他数据使用了,会提示hdfs input path exist, please rename hdfs INPUT_PATH in config file 请自行判断/州5_以川是否被其他应用使用。ETL输出检查:1. hdfs output path not exist, ok表示路径可用2. hdfs output path exist, please rename hdfs OUTPUT_PATH in config file,请自行判断OU7PU7_PA7H是否被其他应用使用。hive建表检查:1. hive t

35、able not exist, ok.表示目标表未建,ok2. hive table exist, please rename table name in config file,表示目标表已经建立,请自行判断目标表是否被其他应用使用。如果目标表未建立,命令会自动在测试环境建表,并提示用户通过建表工具将测试环境中的表同 步到线上please syncronize the offline table dpdw_mobile_location_service_log o online using 建表工具标红的地方即默认建立的目标表名。至此,我们完成了生成ETL任务需要的配置文件并在测试环境下建表

36、成功。5.2.3.3测试ETL任务使用命令 sun jar -g data_analysis/组帐号-p 产品-c config 文件-t $time_stamp执行ETL mapreduce任务。如果前面的配置没有问题,一般都是可以成功的。其中config文件即前面通过sun marin命令产生的config文件,-t参数后面跟的是一个时间戳, 可以通过 shell 命令获得,比如 date +%s -d 2014-06-01 09:00:00、。需要注意的是,sun jar命令在ETL任务执行完成后会进行加载到hive的操作,即config文件里 面的doLoad函数,所以请在执行之前确保

37、hive里面目标表已经建立(默认通过sun marin命令 即可,除非需要修改目标表名)可以通过在测试环境下执行hive命令,验证数据是否正确进到目标表里面。e.g.IH$ hiveLoggmg initialized using configyration in file: /usr/local/hadoop/Hive-e, 11.9-Jp- l/conf/hlwe-lcig4j,properties-Hive history fiLe=/da ta/hive -que- Lsogi/blji redeploy/hlwe J eb Log blpredeploy 7LB7dw-hKepree

38、2. hn 201467-321346 14花3512乳 txt hive (deraijlt) use bl;OKTime taken; 2-186 secondshive (Ibiselect 乂 froi dpdw_mabile_locatiDn_5ervie_lag where hp_stat_date = *2914-96-&1 and hp_stat_hour = 毛9” limit 10; c-:.Time tsken; 1,村5 s取mds5.2.4任务发布5.2.4.1配置文件发布参考4.1,先通过git push代码,merge后,执行命令sun publish -g组帐号

39、即可将所有文件发布到线上5.2.4.2线下表同步到线上如下图防俱匡否 blr注1-支片由舄村布向普上作膜比茜-IXPtH土拒字闻ltU:U在尊的后一列3.愤:王打曹字尊盘孵岳堆胃只|呈J!辄上卑畦工耳胃刺讶用无;外通过建表工具将测试环境中的表同步到线上,因为是外部表,所以需要把路径中的bipredeploy 改成hive,这样才能保证线上是有数据的。用 2ndf b : /zie.2.6. lea/uBfr/bip新棒森岳bi舞的注驻Greater Than IB- Hcnthi表口 世里 EXTRHAL_IAftLER!枚倍血归上号|日下蛆帷号存犒宿息与ft!描述餐月StrOeff s ap

40、ache .hadkiop hive- : 3-e-n9i自妙隅再5 白NI.A 槽式cor. hadoop BiMpred,列好 SI 行网幡出律式n rg. apac ha .hAdaop. hive-. ql.行妙牌拜B分后仙:1电列(HU甘隋冲51分腾河誓序列心53atffpjB 利的信息 停号到兹9Sts5.2.5任务配调度5.2.5.1 配置 doCheck 任务此任务主要是为了检查blackhole是否已经将需要的日志数据拉到hdfs上的INPUT_PATH,具体 可以参考下面的截图。需要修改的地方如下:任务的owner请改成自己。结果表名为bi.dpods_log_$APPLI

41、CATION_NAME_check_done,此时界面会提示错误,不用管它。由于表名不能带存和大写字母,所以请在这里把APPLICATION_NAME里面的大写字 母改成小写,并用L替换/其他地方的$(APPLICATION_NAME不用改。周期根据实际情况选择日/时运行级别默认为低,如果任务很重要,请选择中或者高执行频率:小时级日志为0 5 * * * ? 天级任务为0 5 0 * * ?参数 1 为 sh /data/deploy/bicron/blackhole/check_done.sh参数 2 为 $unix_timestamp参数3为INPUT_PATH的路径的根目录,比如/use

42、r/hive/warehouse/bi.db/dpods_log_$APPLICATION_NAME,不包括 $TO_PROCESS_DAY/$TO_PROCESS_HOUR保存后可以查看到新增加的任务ID和任务名称,后面配ETL任务会用到该任务ID和任务名称。如果doCheck任务有问题,请先检查线上服务器是否正常产生日志。如果日志正常产生,请再联 系lantao看是否是blackhole在数据传输中有问题。二据主新小B - i.是守史i+Tiwo T ?iC. .hl-. f cade311-1 code e祐也次有I灯5+5.71 .洁TE:-祁an/blackhcle/check do

43、ne, sli签5(unix_t1Best smp巷散 3db/dpcdB log mo bile-log-we音注3,柿驱位或幽置5.2.5.2 ETL任务配置此任务主要是为了通过调度每小时/每天执行ETL任务,自动将日志数据处理完加载到目标表中, 具体参考下图配置。需要修改的地方:任务owner改成自己结果表名为bi.$(结果表名周期/运行级别/执行频率和doCheck任务相同参数 1 为 sh /data/deploy/sun/bin/ivy.sh jar参数 2 为-t $unix_timestamp参数3为-c config文件-g组帐号-p产品注意在前驱依赖配置里面加上对doChe

44、ck任务的依赖2, sre s出岸H时忸r;c - me.w主沙打汗白.mJ.珂广展农|. e odee*才.E I汩之A.i 户虽女 1ti/data/depioy/suu/bin/iv多散卫 -1 S unix_iLxn e & t amp)够胜3-c dpdw search lag artssnoi胥注H 济 is-始果表右 bl. dpnw search lag artsshoi 住房名称 h Lvesb i. 口 pdM_5:ea reh_LDg_a+M|dwJ底 n:ft-刊寸门i.5lir-M,一qo I尊,足薪三顷广:汗. .MctA+ i:Hoifetj耕泮06批疗矿D 15

45、 - - ?a.前驱俄sec置5.2.5.3任务预跑预跑主要有两个功能,1是补历史数据,2是测试线上任务是否能正常运行。操作如下:任茶m任务电祢执行周期开斐者操作wormhole1B524mysql2h dfRL Rew rdteRiileE Newn讦誓博您13warmhole1B525my s q 12h df s4i*GP_U RL Rew rite Rulesn许景椎g armhole10526mysql2ridfs#BC_URLRewrlLeRiiilesE许景柚旦土根据需要选择开始时间和结束时间,如果有问题,可以咨Whongdi.tang5.3 数据导出(Hive 到 GP Rep

46、ort, GP Analysis)过程同数据导入部分;数据源选择hive其他数据传输任务请直接联系galaxy_user_support,我们会进行支持6.附录6.1 DOL开发参考6.1.1参考资料Apache HIVE Language ManualApache VTL ReferenceApache Velocity User GuideHive开发规范6.1.2运行方式sun velocity:Arguments:-g Group.线上组帐号名称-p 可选参数,项目名称-c Caculator name-d date input传入时间,如果没有该参数,默认传入昨天-dol dol f

47、ilename,命名规范:组账号.业务划分.表名.dol,如:badev.ad.dpmid_ad_contract.dol,命名注意文件相对于指定的dol目录,与-str冲突-E user defined parameters-hshort help-oonly parse the dol and print sql 仅解析且打印-s serverid: 5|6|7 (预留功能,暂时未使用)-tid scheduling task id 在配置任务时需要-u user type: dwdev|bi (预留功能,暂时未使用)-str Text for dol直接执行参数中的文本,与-dol冲突常

48、用参数为-dol ,传入dol文件名称。-d ,传入时间参数。-str 执行传入文本。使用示例:sun velocity -g warehouse -p dol -dol dwdev.dp.dpdim_dp_shop.dol -d 20131126.1.3时间格式目前有两种获取动态时间的方法:1. $env.FORMAT2. $dt.ACTION(ARGS)$env.FORMAT:FORMAT的具体展现有以下:YYYYMMDD (传入时间的年月日),o 如 select * from dual where hp_statdate=$env.YYYYMMDD:传入当前时间的年 月曰,解析后:se

49、lect * from dual where hp_statdate=2013-07-31;YYYYMMDD_PND (在传入时间的基础上向前偏移N天)o 如 select * from dual where hp_statdate=$env.YYYYMMDD_P2D:在传入时间的 基础上向前偏移2天。0N=30.解析后:select * from dual where hp_statdate=2013-07-29;YYYYMMDD_PNM (在传入时间的基础上向前偏移N月,0N=12),YYYYMMDD_PNY (在传入时间的基础上向前偏移N年,0N=2),YYYYMMDD_YESTERDA

50、Y,YYYYMMDD_TODAY,YYYYMMDD_DEFAULT_HP_DT(昨 天、今 天、拉链表默认时间(30001231),不会受传入时间参数的影响)o如执行脚本通过-d传入一个过去的时间。canaan -dol test.dol -d 20130101实际 select * from dual where hp_statdate=$env.YYYYMMDD_YESTERDAY;解析 后为:select * from dual where hp_statdate=2013-07-31;YYYYMMDD_NND,YYYYMMDD_NNM,YYYYMMDD_NNY (在传入时间的基础上向后

51、偏移N天、月、年)YYYYMMDD_PNDOW (DOW=DAY OF WEEK,传入时间在这个星期的前一天 0N=10)o 如 select * from dual where hp_statdate=$env.YYYYMMDD_P2DOW解析后: select * from dual where hp_statdate=2013-07-29;YYYYMMDD_PNDOM (DOM=DAY OF MONTH,传入时间在这个月的前一天 0N=2)YYYYMMDD_PNDOY ( DOY=DAY OF YEAR,传入时间在今年的前一天 0N=2)YYYYMMDD_PNDOWIM (传入时间的前一

52、星期的那一天,如如果当天是2.22,则结果为2.14 0N=2)YYYYMM (传入时间的年月)YYYYMM_YESTERDAY (昨天的月份,不收传入时间影响),YYYYMM_TODAY (今天的月份, 不收传入时间影响),o 如 select * from dual where hp_statdate=$env.YYYYMM_YESTERDAY;解析后: select * from dual where hp_statdate=2013-07; canaan -d 传入参数不影响。YYYYMM_PND,YYYYMM_PNM,YYYYMM_PNY 0N=2YYYYMM_NND,YYYYMM_

53、NNM,YYYYMM_NNY 0N=2YYYYMM_PNDOW,YYYYMM_PNM,YYYYMM_PNY,YYYYMM_PNDOWIMYYYY (传入时间的年份)YYYY_P1DOWIM,YYYY_P2DOY,YYYY_P1DOM,YYYY_P1DOW 0N=2YYYY_NND,YYYY_NND,YYYY_NNY 0N=2YYYY_PND,YYYY_PND,YYYY_PNY 0N=2YYYY_YESTERDAY,YYYY_TODAYMM (传入时间的月份,2013-02-22则显示02)MM_YESTERDAY,MM_TODAYDD (传入时间,2013-2-22则显示22)DD_YESTE

54、RDAY,DD_TODAY$dt.ACTION(ARGS)这里是将通过$dt获取动态时间的方法进行抽象描述ACTION:表示动作(plusDays,plusMonths 等)ARGS:表示传入参数(时间Date,变化值N等)具体示例如下:plusDays(DATE, N )在给定日期(DATE)的基础加上N天,默认返回格式为yyyy-MM-dd。o 如 select * from dual where hp_statdate=$dt.plusDays(2013-07-30,1);j解析后: select * from dual where hp_statdate=2013-07-31;o 可以

55、和 env 混合使用,如$dt.plusDays($env.YYYYMMDD,2 plusDays(DATE,N,FORMAT),同上,但是给可以指定返回格式FORMATo 如指定 FORMAT 为 YYYYMMDD, select * from dual where hp_statdate=$dt.plusDays(2013-07-30,1,YYYYMMDD);解析后:select * from dual where hp_statdate=201307212;plusMonths(DATE, N )在给定日期的基础加上N月,默认返回格式为yyyy-MM-dd。o 如 select * fr

56、om dual where hp_statdate=$dt.plusMonths(2013-07-30,1);解析后 select * from dual where hp_statdate=2013-08-30;plusMonths(DATE, N ,FORMAT),同上,但是给可以指定格式FORMATplusWeeks(DATE, N )在给定日期的基础加上N星期,默认返回格式为yyyy-MM-dd。plusWeeks(DATE, N ,FORMAT),同上,但是给可以指定格式FORMATminusDays(DATE, N )在给定日期的基础减去N天,默认返回格式为yyyy-MM-dd。m

57、inusDays(DATE, N ,FORMAT)同上,但是给可以指定格式FORMATminusMonths(DATE, N)在给定日期的基础减去N月,默认返回格式为yyyy-MM-dd。minusMonths(DATE, N ,FORMAT)同上,但是给可以指定格式FORMATminusWeeks(DATE, N)在给定日期的基础减去N星期,默认返回格式为yyyy-MM-dd。minusWeeks(DATE, N ,FORMAT)同上,但是给可以指定格式FORMATgetLastDayOfMonth(DATE)获取给定日期当月的最后1天o 如 select * from dual where

58、 hp_statdate=$dt.getLastDayOfMonth(2013-07-30);解 析后 select * from dual where hp_statdate=2013-07-31;getLastDayOfMonth(DATE, FORMAT)同上,但是给可以指定格式 FORMATgetFirstDayOfMonth(DATE)获取给定日期当月的第一天getFirstDayOfMonth(DATE, FORMAT)同上,但是给可以指定格式 FORMATgetLastDayOfWeek(DATE)获取给定日期这个星期的最后一天getLastDayOfWeek(DATE, FORMAT)同上,但是给可以指定格式 FORMATgetFirstDayOfWeek(DATE)获取给定日期这个星期的第一天getFirstDayOfWeek(DATE,FORMAT)同上,但是给可以指定格式 FORMAT6.1.4 velocity中的字符串比较velocity实际执行的是java语言,所以在非严格模式下所有不同类型的比较都会返回false,要 进行字符串的比较需要进行格式转化:#if ($string.toString().compareTo

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!