毕业论文港口货运统计与决策支持系统.docx

上传人:牧羊曲112 文档编号:1860280 上传时间:2022-12-22 格式:DOCX 页数:34 大小:2.87MB
返回 下载 相关 举报
毕业论文港口货运统计与决策支持系统.docx_第1页
第1页 / 共34页
毕业论文港口货运统计与决策支持系统.docx_第2页
第2页 / 共34页
毕业论文港口货运统计与决策支持系统.docx_第3页
第3页 / 共34页
毕业论文港口货运统计与决策支持系统.docx_第4页
第4页 / 共34页
毕业论文港口货运统计与决策支持系统.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《毕业论文港口货运统计与决策支持系统.docx》由会员分享,可在线阅读,更多相关《毕业论文港口货运统计与决策支持系统.docx(34页珍藏版)》请在三一办公上搜索。

1、 本科生毕业论文(设计)题 目: 港口货运统计与决策支持系统的 设计与实现 姓 名: 高 旻 学 院: 信息科学技术学院 专 业: 计算机科学与技术 班 级: 计科92 学 号: 19209226 指导教师: 胡 滨 职称: 讲 师 2013 年 5月15日南京农业大学教务处制目 录摘要2关键词2Abstract2Key words2引言21 课题研究意义及内容21.1 课题研究的背景与意义31.2 课题研究的内容32 相关理论与技术基础32.1 ETL介绍 32.1.1 ETL增量更新32.1.2 ETL的数据质量42.2 kettle工具简介42.3 oracle语句的应用52.3.1 o

2、racle分析函数52.3.2 获得数据中的数字部分52.4 powerbuilder的特点63 港口货运统计与决策支持系统分析与设计73.1 需求分析73.1.1 港口物流操作流程73.1.2 系统目标73.2 数据库设计73.2.1 数据库分析83.2.2 数据库结构设计83.3 ETL设计103.3.1 ETL分析103.3.2 ETL 设计103.4 查询及统计功能设计213.4.1查询和统计模块213.4.2 登录模块214 港口货运统计与决策支持系统的实现224.1 ETL转换的实现224.1.1 建立视图224.1.2 kettle程序234.2 界面实现255 总结与展望30致

3、谢31参考文献31港口货运统计与决策支持系统的设计与实现计算机科学与技术专业学生 高旻指导老师 胡滨摘要:如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。研究箱状态信息查询和相关数据统计以支持决策分析成为趋势。本文设计并实现了对连云港电子口岸诸多系统所涉及的数据进行抽取、转换、再造,建立一个数据底帐,在此底账的基础上对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。本文首先阐述了课题研究的背景、意义和内容,介绍了用到的主要理论知识,然后说明了数据库设计、ETL设计和界面设计。关键词:ETL;

4、统计;集装箱Design and Implementation of Port Cargo Statistics and Decision Support System Student majoring in Computer Science and Technology GaominTutor HubinAbstract:Today, container transport has developed rapidly in the network environment.The information services of container transport no longer jus

5、t transport information, but more and more focus on providing value-added information services.This subject transforms the raw data from the Lianyungang EDI Center to create a data ledger ,and then statistics import and export container volume and query state of container on the basis of this ledger

6、.This paper first describes the background, significance and content of the research.Then this paper writes the main theoretical knowledge about this subject.And then this paper explains database design, ETL design and interface design.Key words: ETL;statistics;container 目前,在港口企业,一般都建立有运输配送系统、仓储管理系统

7、等信息系统。这些系统为港口企业累计了海量的业务信息。但是,这些软件都较简单、技术含量低,不具备提取并加工所存储的信息的功能,导致不能对企业中高层的经营管理提供决策支持,无法满足日益规范化的货代行业发展。如何使港口企业在日常生产经营过程中产生的大量经营业务数据为公司决策层在进行经营决策时发挥更大的作用,正是统计与决策支持系统所关注的问题。所以,建立一个统计与决策支持系统就成为目前港口企业信息化建设的工作之一。本课题便是研究港口货运统计与决策支持系统的设计与实现。1 课题研究意义及内容1.1 课题研究的背景与意义连云港电子口岸是以港航电子数据交换业务为主的公司。随着口岸业务数据的大规模增长,连云港

8、电子口岸逐步建形成了网上订舱、电子提箱、电子装箱单、场站系统、理货入库单系统等诸多业务系统。在出口业务方面,已经逐步形成了一条从订舱到放行装船的完整系统链条。本课题研究便是基于连云港电子口岸诸多系统所涉及的数据。如今的集装箱运输高速发展,在网络环境下的信息服务,不再仅仅是传输信息,而是越来越多的专注于提供增值信息服务。对已有信息进行分析加工,是所得到的新信息所具有的价值明显高于原有信息,这就是信息增值服务。这样,连云港电子口岸的仅以传送信息作为信息服务核心功能的系统就逐渐不能满足需求了。如何对信息进行进一步的提炼以便用于增值服务中变的至关重要。所以,研究“港口货运统计与决策支持系统的设计与实现

9、”具有可行性和必要性。1.2 课题研究的内容首先,对各种历史数据进行抽取、转换、再造,整理出一些有辅助决策的数据来,主要用到的是kettle工具,数据库用的是oracle。即从各个系统里面,识别并找出最原始的数据,将这部分数据抽取出来,建立一个数据底帐;然后针对这个底帐,再回溯关联各个系统,追踪各个系统的状态变化,延时分析同步到底帐上,丰富底帐数据。这样,底帐数据其实就是一个集装箱从录入系统、做各种业务、最后完结的一个完整周期。对与辅助决策、或者协调各个业务系统都是有很重要的意义的。一方面对整体的数据是一个新的认识,可以辅助决策,另一方面可以更好的协调当前运行的项目。其次,从对已整理出的底账数

10、据进行查询、统计,界面的软件用的是powerbuilder。对进出口箱量、中转箱量等进行统计分析,对箱和提单在整个进出口操作中各个环节的状态进行联合查询。一方面对整体的数据是一个新的认识,可以辅助决策,另一方面可以更好的协调当前运行的项目。2 相关理论与技术基础2.1 ETL介绍ETL的三个字母分别代表的是extract、transform、load,即抽取、转换、加载1。数据抽取即是从数据源中抽取目的系统需要的数据;数据转换即是将数据抽取中获取的数据按系统需求转换,使其成为目的系统要求的形式,并对不一致、不需要的数据进行清洗和加工;数据加载即将转换后的数据载入目的系统数据源。 ETL的核心在

11、于T这个过程,也就是转换,而抽取和装载一般可以作为转换的输入和输出或者作为一个单独的部件,其复杂度没有转换部件高。ETL过程一般都是批量操作,不是针对单条记录的insert、update和select等操作。ETL原本用于构建数据仓库2,负责将分布的、异构的数据源中的数据抽取到临时中间层中进行清洗、转换、集成,最后加载到数据仓库,成数为据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步3。2.1.1 ETL增量更新ETL过程可分为全量过程和增量过程,前者对应首次的数据集成,后者对应着数据的增量维护。增量更新按照数据种类的不同大概可以分成四种:只增加,不更新;只更新

12、,不增加;即增加也更新;有删除,有增加,有更新。这四种增量更新的思路大致相同,使用的步骤可能略有不同。增量更新的核心问题在与如何找出自上次更新以后的数据。方法一是使用时间戳。在原数据库增加一个时间戳,然后在转换之后的对应表保留这个时间戳,然后每次抽取数据的时候,先读取这个目标数据库表的时间戳的最大值,把这个值当作参数传给原数据库的相应表,根据这个时间戳来做限定条件来抽取数据,抽取之后同样要保留这个时间戳。方法二是使用触发器。分别对insert , update , delete 操作建立触发器,将源数据表中进行过这些操作的数据加入到新表,在进行ETL的过程的时候读这个新表,在读完之后将这个表里

13、面的数据删除掉。方法三是定时执行增量更新。比如两个小时或每天或者一个星期进行一次更新,这个时候可以不需要在目标表中增加一个时间戳字段来判断ETL进行的最大时间,直接在取得原数据库的时间加上限定条件。这个时候需要传一个参数,用get System Info 步骤来取得,而且你还可以控制时间的精度,比如到天还是到秒的时间。但这种方法,对某时段因为某种原因没有更新的情况处理比较麻烦,可能需要手工处理回来,如果失败的情况经常发生,那还是使用在目标数据库中增加一个时间字段取最大时间戳的方式比较通用。其他方法还有使用日志文件和使用全量数据等。2.1.2 ETL的数据质量ETL很难保证数据的百分百准确。数据

14、不一定要求百分百准确,但要知道为什么不准确。首先在数据源方面,就可能存在影响数据质量的原因,如数据源中存在数据格式错误、数据不一致、数据录入不全等。在ETL过程要有处理这些质量有问题数据的保证。这些问题数据,是丢弃还是处理,无法逃避。如果没有质量保证,那么在这个过程中,错误会逐渐放大,影响下一环节。ETL过程中也有对数据准确性产生重大影响的因素,可以分为下面几类:1、 规则描述错误。设计人员对数据源系统理解的不充分,导致规则理解错误,这是一方面。另一方面,是规则的描述,如果无二义性地描述规则也是要探求的一个课题。2、ETL开发错误。即时规则很明确,ETL开发的过程中也会发生一些错误,例如逻辑错

15、误等。例如对同一数据可能存在增删改三种操作时,没有为三种操作排序,而是让其同时进行,导致可能出现数据已删除却又有对其修改得操作需要执行。3、人为处理错误。在整体ETL流程没有完成之前,通常会手工试运行ETL过程,这可能导致误删了数据、重复装载数据等。如果在源头不能保证比较干净的数据,那么后面的分析功能的可信度也都成问题。2.2 kettle工具简介Kettle是一款国外开源的etl工具,纯java编写4,可以在Window、Linux、Unix上运行,绿色无需安装,可以运行于多个平台,数据抽取高效稳定。要运行KETTLE要求先安装JDK1.5或以上版本。Kettle中有两种脚本文件,其一是tr

16、ansformation即转换,后缀为.ktr,其二为job即作业, 后缀为.kjb。transformation完成针对数据的基础转换,好比工厂里的生产流水线,每个组件相当于一个员工;job则完成整个工作流的控制,好比工厂里的管理。如果用记事本打开文件可发现转换和作业都是xml类型文件。作业分为分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执行前面的再执行后面的,每个步骤执行结果分两种:true(成功)/false(失败),根据返回结果可以控制流程走向。转换是一开始所有步骤同时运行,记录会从最前端的步骤向后传递,传递到相应步骤

17、则该记录被该步骤作相应处理,处理完成再把记录往后传递,记录传递分复制和分发两种模式。Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。SPOON 允许你通过图形界面来设计ETL转换。CHEF允许创建任务。PAN 允许你批量运行由Spoon设计的ETL转换,它是一个后台执行的程序,是一个数据转换引擎,没有图形界面。Kitchen可以运行利用XML或数据资源库描述的任务,也是一个后台运行的程序。Kettle提供了两种资源库的选择方式:数据库存放、本地文件存放。数据库存放是通过数据库连接直接在数据库里面创建kettle表,表里面记录着你所做的任何保存过的记录以及转换和任

18、务。此方法是远程存放的方式,具有可多人共享一个资源库的优势,但是也存在资源库不稳定的缺点。2.3 oracle语句的应用2.3.1 oracle分析函数在日常的生产环境中,我们接触得比较多的是OLTP系统即联机事务处理系统,与此不同的是OLAP系统即联机分析处理系统。OLAP系统一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系在一起。这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询、统计操作为主。如查找上一年度各个销售区域排名前10的员工或按区域查找上一年度订单总额占区域订单总额20%以上的客户或查找上一年度销售最好和最差的产品。这两个例子和一

19、般的查询有些不同,表现在:1、 需要对同样的数据进行不同级别的聚合操作;2、 需要在表内将多条数据和同一条数据进行多次的比较;3、 需要在排序完的结果集上进行额外的过滤操作。这时,一般的select语句中的order by和group by 便不能满足查询要求,需要用到分析函数。分析函数允许对一个数据集进排序和筛选,这是SQL不能实现的。分析函数通常用于计算数据累计值、数据移动值、数据中间值和输出集合报表。分析函数通过将行分组后,再计算这些分组的值。与聚合函数不同之处在于能够对每一分组返回多行值。分析函数根据分析子句将行分组,一个分组称为一个窗口,每一行都对应有一个在行上滑动的窗口。该窗口确定

20、当前行的计算范围,窗口大小可以用多个物理行进行度量,也可以使用逻辑区间进行度量,如时间。分析函数是在查询中除order by 外最后执行的操作,所以分析函数只能用于选择列或 order by子句,而不能用于where、group by和having子句中。分析函数的语法:FUNCTION_NAME(,.)OVER()如:sum(sal) over (partition by deptno order by ename) as new_alias。其中sum就是函数名,(sal)是分析函数的参数,每个函数有03个参数,参数可以是表达式,例如:sum(sal+comm);over 是一个关键字,用

21、于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数;partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区;order by ename 是可选的order by 子句,有些函数需要它,有些则不需要,依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD时必须使用,而AVG则不需要。在使用了任何排序的开窗函数时,该子句是强制性的,,指定了在计算分析函数时一组内的数据是如何排序的。2.3.2 获得数据中的数字部分方法一是使用translate函数。translate函数语法为TRANS

22、LATE(string, from_str,to_str)。此函数返回将from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。将translate函数用于得数据中的数字部分的例子:select trans

23、late(23456中国3-00 =.,45,0123456789|23456中国3-00=.,45,0123456789) from dual;,其结果为2345630045。方法二是自定义函数。可以自定义一函数来获取数据中的数字部分,如:create or replace function f_filter_str(var_str varchar) return varcharisvar_str_new varchar2(2000);beginfor i in 1.length(var_str) loopif ascii(substr(var_str,i,1)=48 and ascii(s

24、ubstr(var_str,i,1)=57 thenvar_str_new := var_str_new | substr(var_str,i,1);end if;end loop;return var_str_new;end f_filter_str;运行select f_filter_str(23456中国3-00=.,45) from dual;,其结果也是2345630045。方法三是用正则表达式函数regexp_replace。Oracle 正则表达式函数regexp_replace有六个参数,第一个是输入的字符串,第二个是正则表达式,第三个是替换的字符,第四个是标识从第几个字符开始

25、正则表达式匹配且默认为1,第五个是标识第几个匹配组且默认为全部都替换掉,第六个是是取值范围。现有字符串23456中国3-00=.,45,想得到结果2345630045,则写为regexp_replace(23456中国3-00=.,45,0-9+,23456中国3-00=.,45)。2.4 powerbuilder的特点Powerbuilder是一款优秀的企业级数据库前端应用开发工具,主要特点有:1、 可视话的开发环境Powerbuilder是一个集成的完全可视化的开发工具。使用它可以用一种可视、直观的方式来创建应用程序所需的用户界面和数据库接口。2、 面向对象的开发工具Powerbuilde

26、r是一种面向对象编程的快速开发工具5。同绝大多数的windows应用程序一样,它采用事件驱动工作方式。在这种方式下,程序的执行主要是由对象的各种事件来触发的事件代码只有当与之有关的事件发生时才会被执行。它的窗口、菜单和数据窗口等都是对象,用户也可以构造自己的对象6。3、 PowerScript语言PowerScript语言是powerbuilder专用的编程语言。这种语言是一种增强型的结构化编程语言,其基本语法要素与Pascal、C等传统结构化语言类似,而且如同BASIC语言一样简单易学。在PowerScript中除了可以直接引用powerbuilder提供的大量函数和系统对象外,还支持大二进

27、制对象类型和嵌入式SQL语句7。4、 独一无二的数据窗口技术Powerbuilder最大的特点就是其采用了独一无二的数据窗口技术。这种技术对定义和开发数据库连接过程进行了抽象,使得程序开发人员能够完全可视化地完成应用系统中有关数据库的编程工作。5、 开放的系统Powerbuilder可以访问任何一个常用的后台数据库系统,如oracle、sybase、informix、DB2和SQL Server等大型数据库8,以及Xbase、FoxPro和Paradox等小型数据库。它本身也带一个小型的个人数据库ASA,以方便编程人员学习和使用。它提供了通用的前台用户界面和相关的数据库接口,开发人员无需关心每

28、个数据库的特点和特性,只需集中精力进行前台应用程序的开发。6、 多平台的开发环境powerbuilder现在有windows、mactintosh和unix等版本。在不同操作系统开发的应用程序只需要在另一操作系统下重新编译即可直接运行9。7、 网络应用程序的开发使用powerbuilder,除了可以方便快捷地创建传统的基于客户/服务器模式的数据库应用系统外,同时还支持基于N层体系结构分布式的应用程序和基于web的应用程序的开发10,完全具备开发企业级商务应用系统的能力。3 港口货运统计与决策支持系统分析与设计3.1 需求分析目前连云港电子口岸关于货运的业务主要集中于集装箱的进出口,有网上订舱、

29、电子提箱、电子装箱单、场站系统、理货入库单系统等诸多业务系统。这些系统的数据间存在着密切的联系,但却由于使用的单位不同等原因分别存在于不同的数据库,在货代、船代、海关需要查询一些关系到多个系统的信息时,需要查询多次,访问多个数据库。并且由于信息间相对孤立,没有对信息进行加工和比较,不能为高层决策提供依据。所以需要先将数据抽取、转换、加载形成底账,再在底账的基础上实现联合查询和数据统计分析。3.1.1 港口物流操作流程在连云港,集装箱出口时主要流程按顺序是:网上订舱、船公司或船代审批、货代电子提箱、场站放箱、运输装箱、返场即进场站或进码头、报检、理货、码头配载、装船离港。其中网上订舱时会有订单相

30、关订单信息,在船公司审批过后会生成提单号,订舱是处于初始状态还是船方确认,或是船方删除等状态需要反映给货代。在返程进码头时会有电子装箱单信息。在报检后会有报检信息,其中报检状态是已审核还是检验处理中等需要反馈给货代。在理货时会有入库单,记录施封时间、箱或提单状态等信息,这也是货代希望知道的。连云港集装箱进口流程按顺序为:码头或船公司进行提箱委托、车队提箱、车队运输、还箱。其中涉及到电子提箱信息,其中包括提箱状态和提箱时间,这也是货代关注的。综上可见,在查询时要将货代需要知道的信息尽可能通过只输入箱号或提单号就能显示出其所有信息和状态。3.1.2 系统目标 本系统将根据有关船信息、集装箱信息、提

31、单信息等实现以下目标:1、通过抽取、转换、加载各个系统的数据源形成数据底账。2、在底账的基础上实现联合查询,即在本系统中就可查询箱或提单的所有的状态信息,而不用登陆多个系统分别取得相应的状态信息。3、对箱量进行统计对比,如进出口箱量、中转箱量等。3.2 数据库设计3.2.1 数据库分析系统需要建立数据库存放数据底账。由于外界数据的大量性、复杂性和多样性,所以存储在oracle数据库的底账应该是经过分析处理后有用的信息,此数据库就相当于一个大型的数据仓库。本系统建立的数据底账流程为:外界数据源 数据提取 数据加载数据加载到数据底账数据库时,其中关于反映提单和箱状态的数据应存放在一张表里,以便查询

32、。箱信息回执和提单信息回执是申报给海关的数据海关处理后所给的反馈,分别单独建表。关于统计的把同一类查询的数据应放于同一张,不同统计内容不同的数据要分表存放。3.2.2数据库结构设计本文建立了六张表,分别是:中转箱底账表K_T_ZZ、出口装箱单底账表K_T_COSTCO、集装箱装卸船底账表K_T_COARRISTATUS、集装箱进出口信息底账表K_ETL_MAINSTATU、箱信息回执底账表K_ETL_CCCTNNORESPONSE、提单信息回执底账表K_ETL_CCBLNORESPONSE,具体表见表3-1至表3-6。3-1 集装箱进出口信息底账表K_ETL_MAINSTATU集装箱进出口信息

33、底账表NameData TypeCommentIDNUMBER主键CODEVESSELVARCHAR2(35)船名代码VESSELVARCHAR2(35)英文船名VOYAGEVARCHAR2(35)航次IOVARCHAR2(1)进出口标识BLNOVARCHAR2(35)提单号BLNOSTATUSOURCEVARCHAR2(35)提单号状态代码BLNOCODESTATUVARCHAR2(35)暂不用BLNOSTATUVARCHAR2(250)暂不用BLNOSOURCEIDVARCHAR2(35)提单数据源关键字BLNOSTATUTIMEVARCHAR2(20)提单状态时间BLNOMSGTIMEV

34、ARCHAR2(20)提单写入时间CTNNOVARCHAR2(35)箱号CTNNOSTATUSOURCEVARCHAR2(35)箱号状态代码CTNNOCODESTATUVARCHAR2(35)暂不用CTNNOSTATUVARCHAR2(250)暂不用CTNNOSOURCEIDVARCHAR2(35)箱号数据源关键字CTNNOSTATUTIMEVARCHAR2(20)箱号状态时间CTNNOMSGTIMEVARCHAR2(20)箱号写入时间DATASOURCEVARCHAR2(35)数据来源CODECARGOVARCHAR2(35)货代CODESHIPPERVARCHAR2(35)船代CODECU

35、STOMSBROKERVARCHAR2(35)报关行CTNMANAGERVARCHAR2(35)箱管BLNOWTNOVARCHAR2(35)提单委托号CTNNOWTNOVARCHAR2(35)箱委托号CTNYARDVARCHAR2(35)场站TRUCKNOVARCHAR2(35)车号3-2 提单信息回执底账表K_ETL_CCBLNORESPONSE提单信息回执底账表NameData TypeCommentCCRESPON_BLNO_INFO_IDNUMBER主键MSGTYPEVARCHAR2(10)报文类型FILEIDVARCHAR2(20)报文id(报文表主键)MESSAGEIDVARCHA

36、R2(50)消息idEDI_USERNAMEVARCHAR2(25)用户名IMOVARCHAR2(50)船识别码VESSELVARCHAR2(35)英文船名VOYAGEVARCHAR2(10)航次BLNOVARCHAR2(35)提单号RESPON_TYPE_CODEVARCHAR2(10)回执类型代码RESPON_TYPE_TEXTVARCHAR2(512)回执类型MSGTIMEVARCHAR2(14)报文时间3-3 箱信息回执底账表K_ETL_CCCTNNORESPONSE箱信息回执底账表NameData TypeCommentCCRESPON_CTN_INFO_IDNUMBER主键MSGT

37、YPEVARCHAR2(10)报文类型FILEIDVARCHAR2(20)报文id(报文表主键)MESSAGEIDVARCHAR2(50)消息idEDI_USERNAMEVARCHAR2(25)用户名IMOVARCHAR2(50)船标示号VESSELVARCHAR2(35)英文船名VOYAGEVARCHAR2(10)航次CTNNOVARCHAR2(35)箱号RESPON_TYPE_CODEVARCHAR2(10)回执类型代码RESPON_TYPE_TEXTVARCHAR2(512)回执类型MSGTIMEVARCHAR2(14)报文时间3-4 出口装箱单表K_T_COSTCO出口装箱单表Name

38、Data TypeCommentSTATUVARCHAR2(10)“装箱单-O”BLNOVARCHAR2(20)提单号CTNNOVARCHAR2(20)箱号BLNOSTATUTIMEVARCHAR2(30)操作时间CTNTYPEVARCHAR2(10)箱型(大小+类型)CARGOAGENTVARCHAR2(20)货代CODECARGOAGENTVARCHAR2(20)货代代码3-5 集装箱装卸船底账表K_T_COARRISTATUS集装箱装卸船底账表NameData TypeCommentIMOVARCHAR2(50)船识别号CODEVESSELVARCHAR2(35)船名代码VOYAGEVA

39、RCHAR2(35)航次BLNOVARCHAR2(35)提单号CTNNOVARCHAR2(35)箱号STATUSOURCEVARCHAR2(35)状态代码:装LOAD/卸DISSOURCEIDNUMBER数据源关键字CTNYARDVARCHAR2(35)场站IOTIMEVARCHAR2(35)装卸时间MSGTIMEDATE写入/更新时间3-6 中转箱表K_T_ZZ中转箱表NameData TypeCommentCTNNOVARCHAR2(20)箱号CTNTYPEVARCHAR2(10)箱型(大下+类型)IOSIGNVARCHAR2(10)进出口标示BLNOVARCHAR2(20)提单号CODE

40、DELIVERYVARCHAR2(70)中转港代码DELIVERYVARCHAR2(70)中转港CTNNOSOURCEIDVARCHAR2(50)COARRI_PLCONINFO主键CTNNOSTATUTIMEVARCHAR2(20)操作时间3.3 ETL设计3.3.1 ETL分析场站进出门信息、入库单信息、货代报检信息、订舱数据信息、电子装箱单信息、装卸船信息等是需要抽取载入集装箱进出口信息底账表K_ETL_MAINSTATU表的,抽取的信息要能够用箱号和提单号查询各阶段状态。提单信息回执和箱信息回执分别抽取载入箱信息回执底账表K_ETL_CCCTNNORESPONSE和提单信息回执底账表K

41、_ETL_CCBLNORESPONSE。这些与状态相关的信息时在提取时要注意保留每条信息在原表中的主键即id,以便回溯查询。集装箱装卸船底账表、中转箱表、出口装箱单表载入的是主要是相关的箱型,方便统计箱量,因为TEU箱量计算时20的箱型算作1箱而40的箱型算作2个。3.3.2 ETL 设计3.3.2.1抽取字段设计(1) 场站进出门信息场站进出门信息涉及到的表如图3-1,分别是进出门信息表cogate_plconinfo、船期表pub_shipinfo、班轮信息表shipinfo、船信息表tran_vessel、报文信息表。表之间的关系也如图所示。关联这五张表,抽取船名代码pub_shipin

42、fo.Codevessel、英文船名tran_vessel.vessel_sh、航次pub_shipinfo.voyage、箱号cogate_plconinfo.ctnno、进出门时间cogate_plconinfo.gateouttime和cogate_plconinfo.gateintime。除了提取的信息还有需要添加的信息,即表示这是进出门的标识信息。将场站进出门信息导入集装箱进出口信息底账表K_ETL_MAINSTATU表的字段对应关系如表3-7,K_ETL_MAINSTATU表中没有场站进出门信息的字段默认为空。3-7 进出门信息抽取字段与表K_ETL_MAINSTATU字段对照表K_ETL_MAINSTATUcodevessel

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号