精华内容
下载资源
问答
  • python 实现ETL 处理 架构 1.可以处理数据装载的过程 2.实现SQL执行的函数封装 3.实现数据加工的模板
  • ETL处理过程介绍

    千次阅读 2018-01-11 15:15:34
    本文首先提出了ETL过程进行数据清洗应解决的问题,然后通过分析现有的ETL处理方式说明应采用数据库中的ETL处理,介绍了数据质量和数据清洗的原理并提出了数据清洗在ETL中的应用模型,最后通过实例说明数据清洗的具体...
    为提高数据仓库数据质量,需要在ETL过程进行数据清洗。本文首先提出了ETL过程进行数据清洗应解决的问题,然后通过分析现有的ETL处理方式说明应采用数据库中的ETL处理,介绍了数据质量和数据清洗的原理并提出了数据清洗在ETL中的应用模型,最后通过实例说明数据清洗的具体实现。
    

     

     


    1 前言

    ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程[1]。数据仓库主要用于决策分析,为领导者提供决策支持信息。数据仓库系统中有可能存在着大量的脏数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化、不同的计量单位和过时的编码等。即便是一个设计和规划良好的数据仓库系统,如果其中存在着大量的脏数据,那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”(garbage in, garbageout),系统根本就不可能为决策分析系统提供任何支持。为了清除脏数据,必须在数据仓库系统中进行数据清洗。

    数据清洗(data cleansing/data cleaning/datascrubing)是一个减少错误和不一致性、解决对象识别的过程[2]。目前有很多数据清洗研究[2][3][4][6]和ETL研究[8][9][10],但是如何在ETL过程中进行有效的数据清洗,此方面研究不多。笔者认为这包括三方面的内容:(1)ETL处理方式的选择(2)数据清洗的原理及在ETL中的应用模型(3)数据清洗的具体实现过程。

    2 ETL处理方式

    数据抽取负责完成从数据源找到并取出当前主题所需的那部分数据,由于数据仓库中各个主题中的数据是按照前端应用的需求存放的,因此需要对抽取出的数据进行转换以适应前端应用的需要。转换后的数据就可以装入数据仓库了,数据加载过程定时进行,并且不同主题的数据加载任务有各自不同的执行时间表。

    常见的ETL处理方式可分为以下三种:

    (1)        数据库外部的ETL处理

       数据库外部的ETL处理方式指的是大多数转换工作都在数据库之外、在独立的ETL过程中进行。这些独立的ETL过程与多种数据源协同工作,并将这些数据源集成。数据库外部ETL处理的优点是执行速度比较快。但缺点是大多数ETL步骤中的可扩展性必须由数据库的外部机制提供,如果外部机制不具备扩展性,那么此ETL处理就不能扩展。

    (2)        数据库段区域中的ETL处理

    数据库段区域中的ETL处理方式不使用外部引擎而是使用数据库作为唯一的控制点。多种数据源的所有原始数据大部分未作修改就被载入中立的段结构中。如果源系统是关系数据库,段表将是典型的关系型表。如果源系统是非关系型的,数据将被分段置于包含列VARCHAR2(4000)的表中,以便于在数据库内作进一步转换。成功地将外部未修改数据载入数据库后,再在数据库内部进行转换。这就是系列方法载入然后转换。数据库段区域中的ETL处理方式执行的步骤是提取、装载、转换,即通常所说的ELT。在实际数据仓库系统中经常使用这种方式。这种方式的优点是为抽取出的数据首先提供一个缓冲以便于进行复杂的转换,减轻了ETL进程的复杂度。但是这种ETL处理的缺点有:(a)在段表中存贮中间结果和来自数据库中源系统的原始数据时,转换过程将被中断。(b)大多数转换可以使用类SQL的数据库功能来解决,但它们可能不是处理所有的ETL问题的最优语言。

    (3)数据库中的ETL处理

    数据库中的ETL处理方式使用数据库作为完整的数据转换引擎,在转换过程中也不使用段。数据库中的ETL处理具有数据库段区域中的ETL处理的优点,同时又充分利用了数据库的数据转换引擎功能,但是这要求数据库必须完全具有这种转换引擎功能。目前的主流数据库产品Oracle9i[5]等可以提供这种功能。

    综上分析三种ETL处理方式,数据库外部的ETL处理可扩展性差,不适合复杂的数据清洗处理,数据库段区域中的ETL处理可以进行复杂的数据清洗,而数据库中的ETL处理具有数据库段区域ETL处理的优点,又利用了数据库的转换引擎功能。所以为了进行有效的数据清洗,应该使用数据库中的ETL处理。

    3 数据清洗的原理及在ETL中的应用模型

    数据清洗的目的是保证数据仓库数据质量。

    3.1 数据质量

    对于什么是数据质量,文献[3]将其定义为数据的一致性(consistency)、正确性(correctness)、完整性(completeness)和最小性(minimality)这4个指标在信息系统中得到满足的程度。根据处理的是单数据源还是多数据源以及问题是模式层的还是实例层的,文献[4]将数据质量问题分为4类:单数据源模式层问题(如缺少完整性约束、糟糕的模式设计等)、单数据源实例层问题(如数据输入错误)、多数据源模式层问题(如异构数据模型和模式设计等)、多数据源实例层问题(如冗余、冲突、不一致的数据等)。

    单数据源中出现的问题在多数据源中也有可能出现,并且这种现象也是普遍发生的。模式层次上的问题也会体现在实例层次上。模式层次的问题可以通过改进模式设计、模式转化和模式集成来解决。但实例层次的问题在模式层次上是不可见的。所以数据清洗主要针对实例层次的数据质量问题。

    3.2 数据清洗原理

      文献[11]指出,数据清洗实际就是利用有关技术如数理统计、数据挖掘或预定义的数据清洗规则将脏数据转化成满足数据质量要求的数据。按数据清洗的实现方式与范围,可将数据清洗分为四种:(1)手工实现方式:用人工来检测所有的错误并改正。这只能针对小数据量的数据源。(2)通过专门编写的应用程序:通过编写程序检测/改正错误。但通常数据清洗是一个反复进行的过程,这就导致清理程序复杂、系统工作量大。(3)某类特定应用领域的问题,如根据概率统计学原理查找数值异常的记录。(4)与特定应用领域无关的数据清洗,这一部分的研究主要集中于重复记录的检测/删除。

    3.3 数据清洗在ETL中的应用模型

    在数据仓库系统中,数据清洗是ETL过程中的一个重要环节,主要任务是检测并删除/改正将装入数据仓库的脏数据。由于数据仓库的多种异构数据源和海量数据,数据清洗应是与领域无关的。而且数据清洗不是ETL中一个单独的步骤,需要与数据抽取、数据转换集成,与数据载入统一使用,需要进行循环处理。如果数据源是一个能力比较强的DBMS(如图1中的数据源1和数据源2),则可以在数据抽取过程中使用SQL来完成一部分的数据清洗工作。但是有一些数据源不提供这种能力(如数据源3),则只能直接将数据从数据源抽取出来,然后在数据转换的时候进行清洗。数据仓库中的数据清洗主要还是在数据转换的时候进行的。使用数据库ETL处理方式中的DBMS的转换清洗能力完成大部分的工作,这样数据清洗就充分利用了DBMS提供的功能。


     

     
       


    4 数据清洗的具体实现过程

    不同的系统可以采用不同的数据清洗方法[4]。我们用Northwind数据源为例来进行数据清洗。Northwind是SQL SERVER 2000自带的一个关于贸易公司的数据库。表Customer记录了公司的客户信息,共有11个字段:CustomerID CompanyName ContactName  ContactTitle Address  City  Region  PostalCode  Country  Phone  Fax。我们以这个表为基础,编写程序来加入一些脏数据形成新表:Customernew。数据清洗分为以下几步:

    (1)        元素化

    将非标准的数据格式化成结构数据。

    以数据库表Customernew的任意一条记录为例。Address、City和Phone三个字段值分别为:

    Address:Obere Stre. 57

    City:Berlin

    Phone:030-0074321

    元素化为:

    Address(1):Obere

    Address(2):Stre

    Address(3):57

    City:Berlin

     

    Phone(1):031

    Phone(2):0074321

    (2)        标准化

    将元素标准化,根据字典消除不一致的缩写。

    这里的字典是用户通过分析样本表预先制定的一些规则的集合。样本表是根据概率统计从表Customernew选择一部

    分记录所形成的一个表。首先分析Address(2)的值Stre,此值应是Street的缩写。而在字典中Street的缩写是Str,所以在这里,Stre被认为是脏数据,正确的数据应为:Str。

    (3)        校验

    对标准化的元素进行一致性校验,即在内容上修改错误。

    Berlin的电话区号应为:030,所以Phone(1)的值应为:030。

    (4)        匹配

    在其它记录中寻找相似的记录,发现重复记录。

    对整个表Customernew排序,然后在表中查找Address(1)值为Obere的所有记录,如果有这样的记录再去查找Address(2),依次类推,如果所有字段的数据全都相同,那么这两条记录就是重复记录。

    (5)        消除重复记录

    根据匹配结果进行处理,删除部分记录或者合并多个记录为一个完整信息的记录。

    (6)        归档

    将前5个步骤的结果写入元数据存储中心。这样可以更好地进行后续的清洗过程,而且可以更加容易理解数据源以便在数据仓库中进行切片、切块等操作。

    在上面的数据清洗方法中,我们找出的只是完全相同的记录。对于一些相似的记录,它们也有可能代表的是同一条记录,找出这些相似重复记录对于这个贸易公司有很重要的意义,例如,贸易公司的一个客户在表Customernew中有可能有多条记录。当贸易公司邮寄广告时,他就有可能将多个广告邮寄给同一个客户。这样就浪费了大量的资金。这只是一个很简单的广告例子,但是由此我们也可以看出,检测/删除相似重复记录可以提高贸易公司的经济效益。我们可以采用下面的一种方法或者结合使用这三种方法来检测相似重复记录:

    l  基于契比雪夫定理的统计学方法:这种方法可以随机选取样本数据进行分析,加快了检测速度,但是这是以牺牲准确性为代价的。

    l  模式识别的方法:基于数据挖掘和机器学习算法来查找数据,主要牵涉关联规则算法。

    l  基于距离的聚类方法:这也是数据挖掘中的算法,重点在于它的类的评测标准为欧几里德距离或者Edit距离,通过这种距离来发现数据集中的重复记录。

    5 结论

       数据清洗属于一个较新的研究领域,如何将数据清洗有效地运用到ETL以提高数据仓库数据质量,本文给出了待解决问题的设计方案。但是目前很多人认为数据清洗是针对特定应用领域的问题,是一个单纯浪费大量劳动的问题。其实在脏数据的检测/删除的精度方面以及人机交互设计等方面都有大量的可研究问题。本文给出了一个数据清洗在ETL中的应用模型,并通过例子说明了数据清洗的具体实现过程。此方法的完善还有待于进一步的研究。

    参考文献

    [1]W.H.Inmon.数据仓库.机械工业出版社

    [2]Galbardas H,et al.An ExtansibleFramework for Data Cleaning.Institutenational de Recherche enInformation et en automatique,Technical Report 1999

    [3]Aebi,D.,Perrochon,L.Towards improvingdata quality.In:Sarda,N.L.,ed,Proceedings of the InternationalConference on Information Systems and Management ofData.1993,273~281

    [4]Rahm,E.,Do,H.H.Data cleaning:problemsand current approaches.IEEE Data EngineeringBulletin,2000,23(4):3~13

    [5]Oracle 9i白皮书

    [6]Mauricio A.Hernandez,SalvatoreJ.Stolfo.Real-world Data is Dirty:Data Cleasing and the Merge/PurgeProblem.

    [7]朱明数据挖掘 中国科学技术大学出版社

    [8]Kimball Ralph,the data warehouse toolkit,secondedition,wiley Computer Publishing.

    [9]张宁等.数据仓库中ETL技术的研究.计算机工程与应用.2002.24

    [10]王文彬等.基于移动行业的ETL方法及策略探讨.计算机工程.2003.2

    [11]M Hernandez. A Generation of Band Joins and theMerge/Purge Problem[R].Technical Report CCCS-005-1995,Department ofComputer Science,Columbia University,1995


    转载:http://blog.sina.com.cn/s/blog_7eb42b5a0101cfh8.html
    展开全文
  • ETL处理时增量思路

    2020-06-14 18:25:02
    ETL处理时增量思路 在处理过程中,多个大表关联时通常会有性能问题,所以通常会采用增量方式,那在增量处理时我们需要考虑哪些呢? 1、若来源表为一个频繁变化的A表与其他几乎无变化的表关联时,这时只需要考虑A表...
                            BI中ETL处理增量思路
    

    在处理过程中,多个大表关联时通常会有性能问题,所以通常会采用增量方式,那在增量处理时我们需要考虑哪些呢?

    1、若来源表为一个频繁变化的A表与其他几乎无变化的表关联时,这时只需要考虑A表的增量;
    (1)A表增量 JOIN 其他表全量,更新目标表;

    2、若来源表为相互关联的多个部分A表(变化频繁)、B表(变化频繁),C(变化缓慢),这时我们应该考虑多张表增量;
    (1)A表增量 JOIN B表、C表全量,更新目标表;
    (2)B表增量 JOIN A表、C表全量,更新目标表;

    3、但如果A表和B表关联时使用如max()、sum()/group by聚合函数聚合到大粒度时,要考虑聚合函数带来的增量影响,如以下事例
    Select A.合同,A.订单ID,sum(B.订单数量) as 订单数量
    from A表 A,B表 B
    Where A.订单ID=B.订单ID
    Group by A.合同,A.订单ID
    在这里插入图片描述
    例子中我们对订单数量做了聚合,聚合到了订单ID粒度;
    若B表中,Orderline1的订单数量变成了20(标红部分),还是直接去B表的增量信息,那么结果就会变成如下图(标绿部分)数量为20,但正确的结果应该是40;
    所以我们在考虑这种情况时,应该先找出涉及增量的所有订单ID,然后用增量的订单ID去去关联A表,B表全量信息,既是:
    B表中增量订单ID JOIN B表、A表全量,更新目标表;
    在这里插入图片描述

    展开全文
  • Oracle 9i的ETL处理

    2007-07-31 14:34:28
    Oracle 9i的ETL处理
  • 用于处理OpenFDA FAERS DB的OpenTargets ETL管道。 开放式FDA药物不良事件API返回从FDA不良事件报告系统(FAERS)收集的数据,该数据库包含有关提交给FDA的不良事件和用药错误报告的信息。 管道支持可以在配置文件...
  • 迷你ETL系统 对于那些只想处理 CSV 文件(或其他文件)中的几行(或多行)的人。 metl 不会守护进程,所以你需要使用 cron 来提供调度; 它运行“独立” - 每次处理作业时都会运行metl二进制文件。 这是一个非常...
  • 基于Hadoop的ETL大数据处理流程,配置方便,完全Shell编程实现,支持Bash Shell环境的Linux系统。
  • 基于Hadoop的ETL大数据处理流程,配置方便,完全Shell编程实现,支持Bash Shell环境的Linux系统。
  • 不多说,直接上干货!  这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-48.html ...4、ETL处理类型 1、描述 ...

     

     

     

     

    不多说,直接上干货!

     

      这是来自FineBI官网提供的帮助文档

    http://help.finebi.com/
    http://help.finebi.com/doc-view-48.html

     

     

    目录:

     

     

     

    1、描述

      ETL转换是指对分布的、异构数据源中的数据,比如说关系数据等底层数据进行一定的转换,然后将转换后的数据表保存在中间层中,成为数据分析的基础。
     
      FineBI中的ETL转换包括对数据表的ETL转化和对字段的ETL转换。数据表的ETL转化特指将关系数据表中的行转换为列,简单来说就是将转化前数据表中某个字段的所有值取出来,成为新表的列名;字段的ETL转换是指对业务包中某个数据表的字段进行操作,具体可操作类型包括:新增公式列、join、union、行列转换、使用部分字段、过滤、分组统计、构建自循环列、新增分组。
      FineBI的ETL转化既可以转化业务包内的数据表,也可以转化业务包外的数据表,最后将转化的中间表保存在业务包内。
     
     
      注:所有的ETL操作之后,需要更新Fineindex之后才可以查看到对应的更改结果数据集。对于Fineindex更新操作或者更新方式不了解的可以查看Fineindex更新设置

     

     

     

     

     

     

     

     

     

     

    2、外部数据表

      比如说我们想要基于业务包外部的数据表添加一个ETL转换表至销售DEMO业务包中,那么该如何选择外部数据表呢?
      用管理员账号登录FineBI系统:http://localhost:37799/WebReport/ReportServer?op=fs,点击数据配置>业务包管理,选中销售DEMO业务包,进入销售DEMO业务包配置界面,如下图:

     

     

     

     

     

     

       

      在页面上方点击“+添加表”,选择ETL表按钮即可进入ETL处理界面,如下图:

     

     

     

     

     

     

     

     

      点击右上角的添加表按钮即可添加非业务包内的数据表作为转化表的基本表,如下图:

     

     

     

     

     

     

     

     

      随便选择一张数据表,比如说签约事实表,选中它,点击下一步,页面跳转到数据表设置界面,此时显示的是选中的该表的设置界面,页面左半边为表数据设置区域,右半边是当前表进行etl处理的过程,如进行了N步etl操作都会记录,截图中圈出的就是进行etl操作按钮,点击,即可选择ETL转化的类型,如下图:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    3、业务包内数据表

      如果我们想要直接基于业务包内的数据表进行ETL转化,可直接点击业务包中数据表,进入数据表配置界面,在右侧的ETL处理界面对该数据表进行处理,如下图,选中销售DEMO业务包中的合同事实表数据表,即可在右侧的ETL处理界面进行转化,选择ETL处理的类型:

     

     

     

     

      注:不论是业务包外的数据表进行处理还是业务包内的数据表进行处理,选择数据表之后,页面都会回到上图的表数据设置界面,在该界面的右侧进行ETL处理。

     

     

     

     

     

     

     

     

     

     

    3.1 ETL流及业务包选择
      上面添加非业务包的数据表时,有看到ETL流的操作,下面对它详细介绍。ETL流功能并非一定需要选择业务包的数据表之后才能使用,直接在业务包界面中点击+ETL功能,即之前讲解的业务包数据表添加时,也可以直接选择ETL流进行操作。
     
      ETL流主要是:为了能让复杂的数据表在经过多步ETL操作之后仍能使用该表本身前面某一个ETL步骤之后的中间结果集(表自身可选中间步骤结果集)。
      如下图所示为经过ETL处理的签约事实表:

     

     

     

     

     

     

     

     

     

     

     

      此时,点击右上角的添加表按钮

     

     
     
     
      进入页面后可以点击ETL流,可以看到该数据表从原始步骤开始

     

     
     
     
      每一个ETL处理步骤得到的数据表结果集都可以选择并进行后续操作,如图所示:

     

     

     

     

     

     

     

       

      选择了某一个或者N个结果集之后,会回到之前的数据表操作界面,同时刚才选择ETL流中的结果集也会出现,如下图所示:

     

     

     

      针对上面新添加的另一个结果集,可以进行后续的ETL处理,将两个表join或者union等,在后续的功能模块会进行详细说明。

     

     
     
     
     
     
     

    4、ETL处理类型

      ETL处理的类型有很多种,如下图所示:

     

     

     

     

      注:ETL转换业务包内部数据表,转换完成之后,原始数据表消失,会变成新增的ETL数据表。请谨慎使用。
      注:ETL处理支持使用所有结果集,包括业务包中和数据库中的数据表。
     
     
    下面我们一一介绍所有ETL转换类型的使用方式。

    join

    union

    行列转换

    使用部分字段

    数据表过滤

    分组统计字段

    构建自循环列

    新增分组列

    sql数据分组处理

     

     

     

      见如下博客

      。。

     

     

     

     

     

     

     

     

     

    欢迎大家,加入我的微信公众号:大数据躺过的坑        人工智能躺过的坑
     
     
     

    同时,大家可以关注我的个人博客

       http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/lchzls/      http://www.cnblogs.com/sunnyDream/   

       详情请见:http://www.cnblogs.com/zlslch/p/7473861.html

     

      人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
      目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

     

          对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071) 

     

     

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/zlslch/p/8630058.html

    展开全文
  • ACCELERATED STREAM ETL PROCESSING ON GPUS Peng Sun | NVIDIA Solution Architect Winners are those who went through more iterations of the loop of progress going from an idea, to its implementation, to
  • ActiveReports 报表控件V12版本已于近日正式发布了,为帮助广大报表开发人员更加深入的了解V12版本的新特性,我们将推出《ActiveReports V12新...本文是系列的第一篇文章 -- 无需ETL处理,即可实现跨数据源分析数据。

    ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。


    ActiveReports 报表控件V12版本已于近日正式发布了,为帮助广大报表开发人员更加深入的了解V12版本的新特性,我们将推出《ActiveReports V12新特性》系列文章。本文是系列的第一篇文章 -- 无需ETL处理,即可实现跨数据源分析数据。


    在大型企业中,可能会同时应用多个业务数据系统来存储数据,如CRM 存储客户信息,SCM存储销售订单信息,ERP存储企业订单,资本等信息,如果需要汇总分析多方数据,技术人员需要先将所有数据整合到一个数据库中,这个中间需要处理很多跨平台的数据兼容性及关联性,在数据整合完毕之后,还需要设计布局合理的报表来展示和挖掘整合的业务数据。如此一来发出一份业务分析报告,是非常慢的。如果可以直接根据设计报表,同时展示多个数据源,且能够解决复杂样式,就可以解决大问题了。


    特殊样式设置常常会用到控件嵌套,而控件嵌套最大的限制是同时只能设定一个数据集,只能在控件里面嵌套子报表,而嵌套子报表,面临着要设计多个报表文件,不便于管理,而且样式调整不容易,容易错乱。常常需要多个文件调整对比。


    ActiveReports 12 支持多数据控件嵌套,将各控件的优点结合,如矩表嵌入表格中,可使得表格具有动态列的效果,如果将图表嵌入表格中,可为表格嵌入可视化的效果。 且在实现数据嵌套过程,每一个数据控件都可以绑定独立的数据集,而且在嵌套过程中,不同数据集既可以保持独立,也可以通过设置DataSetParameters  进行关联。可谓将嵌套功能做到极致。数据控件嵌套+多数据集支持=无限样式。

    1. 支持范围 页面/RDL报表
    2. 可用控件矩表,列表,图表,带状列表,表格,迷你图


    今天我们就来学习,如何使用ActiveReports 进行控件嵌套,并进行数据关联。

    1. 新建RDL/页面报表

    2. 添加数据源并创建数据集

    注:这个数据集中间存在关联关系。

    创建【产品】数据集
    select *from dbo.产品
    创建【订单】数据集
    select dbo.订单.*, dbo.订单明细.产品ID
    from dbo.订单 inner join dbo.订单明细 on dbo.订单.订单ID = dbo.订单明细.订单ID
    创建【客户】数据集
    select *from dbo.客户
    产品 与订单 :产品ID 关联  订单与客户:客户ID关联

    3. 添加表格 Table1,选择【产品】数据集

    效果图:

    4. 添加Table 2,设置数据集【订单】

    效果图

    5. 添加Table3 选择【客户】数据集 

    效果图 

    6. 去除 Table3 的表尾行,选中【表格详细数据行】,右键单击,取消选中【表尾】,删除多余列

    效果图

    7. 开始嵌套

    注:嵌套前最好先预留好,父表格的尺寸。

    7.1 将Table3 嵌套到Table2 的表格【详细数据行】中

     7.2  整体调整Table2,将Table2嵌套至 Table1中

    此时预览,会发现三个表格确实都加载了不同的数据集,但确各不相关。

    我们只是刚把嵌套完成,还未设置数据关联。

    8.设置数据关联

    8.1 设置表格的Filters属性

    Table1【产品表】 -产品ID--Table2【订单表】-客户ID- Table3【客户表】 

    因此我们需要在Table 2 上面添加 Filter属性,设置[产品ID]=[产品ID];

    8.1.1 选中Table2,点击【属性对话框】

    8.1.2 同样设置 Table 3 过滤属性

    预览:

    8.2  使用 DataSetParameter 实现数据关联。

    DataSetParameter 和创建过滤器都可以实现数据关联,我们可以根据自己的应用场景来灵活选择任意一种方式。

    选中Table2 设置DataSetParameters 属性 

    8.2.1 设置数据集 DataSet2

    添加参数后,修改查询语句:

    select dbo.订单.*, dbo.订单明细.产品IDfrom dbo.订单 inner join dbo.订单明细 on dbo.订单.订单ID = dbo.订单明细.订单IDwhere 产品ID=@Parameter1 

    8.2.2 设置Table3 的DataSetParameters 属性

    设置DataSet3 的查询语句

    select *from dbo.客户where 客户ID=@Parameter1

    控件嵌套在设计复杂报表样式时应用非常广泛,如下图,实现表格与图表控件嵌套。

    定制培训加量全心送!凡在2017年12月31日之前,购买葡萄城控件团队授权企业授权的用户,不仅可以享受到优惠的价格,还可获赠葡萄城技术专家根据客户项目需求提供的定制培训服务。老客户推荐新客户成单,也将获得“客户推荐双重感恩礼”。

    点击此处,了解更多。

    转载请注明出自:葡萄城报表

    展开全文
  • 2.基础层到中间层的汇总处理(每天处理),ETL处理比较花时间 某些任务一个小时左右才能处理完 3.SQL已经无法再优化 4.这种情况想到hadoop,不知hadoop是否能解决,如何解决? 5.我以下思路是否可行: 基础数据导入...
  • 文章目录为什么GPU适合做ETLRAPIDS(科学计算体系)cuDF技术栈cuDF性能cuIODeskBATCH ETL流式处理弹性处理、科学计算平台、分布式计算三大件STREAMZcuStreamz如何使用RAPIDS总结 为什么GPU适合做ETL 图为ACM特征工程...
  • 阅读提醒:本文将和人人一同切磋怎样用OWB构建一个自动化的ETL处理进程。在假定你已经安设了OWB的条件下,上面会图文并茂慢慢为人人阐明注解构建的进程。 甲骨文公司有很多服从壮大大但受存眷水平较低的产物,...
  • CREATE OR REPLACE VIEW table( 字段英文名 --字段中文名 ) AS SELECT 字段英文名 --字段中文名 from table UNION ALL SELECT 字段英文名 --字段中文名 FROM table;...COMMENT ON VIEW 表 IS '';...
  • 本文将和大家一起探讨如何用OWB构建一个自动化的ETL处理过程。在假设你已经安装了OWB的前提下,下面会图文并茂逐步为大家讲解构建的过程。背景知识Warehouse Builder,常简称为OWB,能够将无格式结构的平面文件(flat...
  • 数据扁平化处理,将之前一个个嵌套的json存储为一个一维的,规范的表结构作数据准备 3、数据集成 将日志的GPS与之前准备好的字典信息补完整,方便后面做地域的维度分析 集成商圈信息,方便后..
  • 简述三种基本事实表,并说明ETL的过程中如何处理它们。 答:事实表从粒度的角色来划分可以分为三类,分别是交易粒度事实表(Transaction Grain)、周期快照粒度事实表(Periodic Snapshot)和累计快照粒度事实表...
  • 风筝SDK Morplines 从其描述复制而来: Morphlines是一个开源框架,它减少了构建和更改Hadoop ETL处理应用程序所需的时间和精力,该应用程序可将数据提取,转换并加载到Apache Solr,HBase,HDFS,Enterprise ...
  • SpringBatch Configuration @Configuration @EnableBatchProcessing public class JobConfiguration { //注入创建任务对象的对象 @Autowired private JobBuilderFactory jobBuilderFactory ;...
  • 1、ETL原始数据 通过观察原始数据形式,可以发现,视频可以有多个所属分类,每个所属分类用&符号分割,且分割的两边有空格字符,同时相关视频也是可以有多个元素,多个相关视频又用“\t”进行分割。为了...
  • 风筝SDK Morplines 从其描述复制: Morphlines是一个开源框架,可减少构建和更改Hadoop ETL处理应用程序所需的时间和精力,该应用程序可将数据提取,转换并加载到Apache Solr,HBase,HDFS,Enterprise Data ...
  •  本文将和大家一起探讨如何用OWB构建一个自动化的ETL处理过程。在假设你已经安装了OWB的前提下,下面会图文并茂逐步为大家讲解构建的过程。  背景知识  Oracle Warehouse Builder,常简称为OWB,能够将无...
  • 版权声明: 该系列文章(DW2.0下一代数据仓库架构)内容系作者学习用笔记, 欢迎共同学习,所载内容版权归原书作(译)者所有,请勿转载商用。... DW2.0中最重要的过程之一是ETL--抽取/转换/装载的...
  • ETL数据处理

    千次阅读 2018-07-10 09:40:51
    ETL数据处理 推荐人 梅雨 推荐日期 7.8 完成日期 7.9 概要 ETL讲解 网址 ...type=note#/ 性质 读书笔记 备注 ETL数据处理 一、关键字分析 ETL(数据仓库技术):Extract-Transform-Loa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,944
精华内容 1,177
关键字:

etl处理