精华内容
下载资源
问答
  • etl自动化
    千次阅读
    2019-05-07 15:53:01
    1. QuerySurge
    2. Informatica数据验证:
    3. QualiDI
    4. ICEDQ
    5. ETL Validator
    更多相关内容
  • ETLMonitorWeb GUI For ETL AutomationPyRESTful 提供REST服务,为SPA提供后端支撑SPA 单一页面应用端,HTML5 + Bootstrap + AngularJS
  • TASKCTL是一款企业级免费ETL调度运维工具,去【网站/公众号】可直接获取产品官方永久使用授权;

    模块信息组织思路

    模块作为流程核心信息的基本组织单位,同时也是用户开发设计流程的主要对象。为了更好地设计流程,首先需要深入理解模块信息的组织思路。

    TASKCTL 流程以模块为单位的流程核心信息组织思路是有别传统的思路,是一种创新的思路。以下我们以与传统思路比较的方式对该思路进行描述。

    传统设计思路

    在调度业界,流程核心信息主要组织思路为:将作业节点化,并将作业控制策略属性化,其中依赖关系、并行关系是最主要的控制策略内容。

    关系表达图形思路在 ETL 调度界,流程图主要根据流程作业节点以及节点关系进行表达。图形表达如下:

    由图可知,该图简洁且直观描述了各作业的依赖关系与并行关系。

    数据表达思路

    面向用户的设计方案

    传统设计思路比较简洁直观,每个节点之间相对独立。在面向用户实施方面, 主要是对每个作业节点直接以记录方式描述。

    具体实施手段,主要是图形拖拽以及节点表单方式描述。比如:Control-M 的作业对话框描述以及 Excel 方式描述。

    TASKCTL 设计思路

    关系表达图形思路

    TASKCTL 设计思路与传统设计思路相比,共同点是将作业节点化,而不同点是对主要控制策略信息依赖并行关系表达方式的不同,TASKCTL 未采用对依赖以简单节点属性方式描述,而是站在整个流程的角度,采用串并节点方式进行结构化描述。

    该方式相对传统方式有一定的抽象。

    表达思路如下图所示:

    该方式与传统方式相比,主要是增加了串并节点的思想,作业之间的运行关系不是主要通过依赖属性确定,而是通过上级组节点的串并属性决定。

    数据表达思路

    面向用户的设计方案 由 TASKCTL 结构化示意图得知,流程整个组织思路结构化特征非常明显, 其结构是具有唯一根节点的标准树结构。为此,TASKCTL 在流程核心信息组织时,直接采用面向用户并以 XML 语言为载体的文本进行描述。

    以下是对前面 TASKCTL 结构化示意图的 XML 描述:

    由以上信息可以简单看出,流程的模块信息是通过 XML 语言对图形直接描述,该信息具有明显的结构特征。由于是以文本的方式组织,使信息更为扁平化, 更易编辑。

    实际 TASKCTL 方案中,为了使流程设计更容易、更简单,TASKCTL 提供了专业的流程集成设计开发环境,在该开发环境中,用户既可以通过文本代码方式设计,又可以图形拖拽方式设计。

    设计思路总结

    从设计思路的角度,传统方式比 TASKCTL 思路简单,更容易让人理解, TASKCTL 组织思路相对有一定的抽象,但由于采用了一定结构化特征,在面对大量作业面前,该思路在理解的基础上,使用会更灵活、更快捷方便,完成同样调度设计,信息总量也相对较少。

    流程总控文件

    流程总控文件是通过 XML 语言描述的流程概述总控信息文件。该文件与模块文件不一样,不直接面向用户,其信息主要通过相应的流程设计工具软件中相关命令与界面操作完成。

    虽然流程总控文件不直接面向用户,但对该文件的具体了解,不仅可以加深对整个流程的理解,同时也会对流程具体设计带来更大的帮助。

    另外,在 TASKCTL 的发展计划中,今后该文件会公开且直接面向用户,使用户可以对该文件直接进行编辑设计,从而增加设计的灵活性。 一份简单的流程总控文件例子

    通过以上范例得知,流程总控信息主要由三部分构成,它们包括:流程基本信息、模块信息、流程变量信息等。

    XML 关键字

    流程总控文件 XML 标签关键字如下:

    流程基本信息

    流程基本信息主要包括:流程名称、流程描述、启动模块、流程最大作业并行度、是否为子流程等信息构成。

    flowname-流程名称

    流程名称是调度平台对流程的关键索引信息,使用时注意以下几点:

    1. 唯一性:流程名称相对调度服务器是唯一的,不能重复
    2. 长度:流程名称长度不能超过 20 个字符
    3. 输入限制:名称不能数字开头,不能包含特殊字符,如:!@|#*...等。

    desc-流程描述

    流程描述指流程的说明信息,该信息可以由任意字符组合。另外,流程描述虽然不是必输项,但通过客户端工具具体应用时,该信息具有特殊的展示意义。

    • 长度:名称长度不能超过 100 个字符
    • 输入限制:不能包含特殊字符,如:!@|#*...等。

    startmodul-启动模块

    一个流程可能由多个模块组成,用户必须指定启动模块,以表示流程的调度运行入口。这与一个程序必须定义主函数类似。 在 TASKCTL 平台中,启动模块即为流程主模块。

    issubflow 是否为子流程

    子流程是 TASKCTL 调度平台重要概念,它从信息内容上与普通流程没区别。唯一区别是:子流程能被其他普通流程调用。

    TASKCTL 引入子流程概念的主要目的:一方面与模块一样,是为了有效结构化管理流程信息,另一方面,是为了达到更佳的调度控制效果。

    子流程与模块本质区别在于:模块是流程的组成部分,而子流程不是调用流程的组成部分;子流程有自己独立的私有变量空间,而模块与调用流程具有同样的变量空间。

    该区别就像实际程序一样,模块类似程序内部的一个类,而子流程是一个独立程序,可以通过其它程序调用。

    对于子流程的具体应用意义,在本文相关章节会有具体举例说明。在流程总控文件中,该属性 Y 代表子流程;N 代表普通流程。

    ctlbatch 业务批次规则

    流程从头到尾运行一次,称之为一个批次。通过设定流程批次命名规则,以便于更好的理解和划分业务流程的逻辑运行批次。在 TASKCTL 中,可以利用流程的 ctlbatch 属性来实现个性化的批次命名规则。

    比如:可以跟业务逻辑日期变量进行关联:

    <ctlbatch>核心系统第 $(work_date)批次流程</ctlbatch>

    通过以上批次规则,可以直观的在运行数据信息中进行展示:“核心系统第 20200701 批次流程”

    模块信息

    在总控信息中,模块信息主要列举流程的所有模块概要信息,内容主要包括: 模块名称、模块描述。

    模块名称

    模块名称是一个流程内模块的关键索引信息,使用时注意以下几点:

    1. 唯一性:一个流程内,模块名称是唯一的,不能重复
    2. 长度:模块名称长度不能超过 30 个字符
    3. 输入限制:名称不能数字开头,不能包含特殊字符,如:!@|#*...等。

    模块描述

    模块描述指模块的说明信息,该信息可以由任意字符组合。另外,模块描述虽然不是必输项,但通过客户端工具具体应用时,该信息具有特殊的展示意义。

    • 长度:名称长度不能超过 100 个字符
    • 输入限制:不能包含特殊字符,如:!@|#*...等
    展开全文
  • ETL自动化设计思路

    2012-11-06 17:51:30
    这段时间很充实! 工具:DB2 JAVA 存储过程 1:分析业务,整理成每一主题需要的维与指标,形成源PDM!...4:ETL,java写一个方法,参数为{存储过程名,目标表名,目标字段,源表名(一个或者多个)...
    这段时间很充实!

    工具:DB2 JAVA 存储过程

    1:分析业务,整理成每一主题需要的维与指标,形成源PDM!

    2:分析以前的业务系统中的表,并形成主题的数据来源于业务库的字段映射,形成源表-中间表-目标表的,形成维度表。形成仓库PDM

    3:根据仓库PDM,建立好各个表。

    4:ETL,java写一个方法,参数为{存储过程名,目标表名,目标字段,源表名(一个或者多个),源表字段,条件,抽取起始时间,抽取终止时间}

    //异常处理
    //日志记录
    //索引处理

    最终生成存储过程。将各个存储过程以及各参数的信息写到存储过程表中。

    调用为:call 存储过程名(抽取起始时间,抽取终止时间)

    5:DB2任务中心,sql 存储过程表,执行存储过程自动完成ETL

    前3步重点在业务模型!
    后2步重点在设计、存储过程!
    以上是两个月的小结!


    接下来:FM,TS,AS,BI
    qq:331932672
    展开全文
  • NULL 博文链接:https://liuzhiqiangruc.iteye.com/blog/1180973
  • 在做ETL开发的时候,如果针对每一个字段的处理逻辑基本相同,需要处理的字段和模型又特别多。在这种情况下我们可以通过此ETL生成器,批量生成标准的ETL

    前言

    在做ETL开发的时候,如果针对每一个字段的处理逻辑基本相同,需要处理的字段和模型又特别多。在这种情况下我们可以通过此ETL生成器,批量生成标准的ETL。

    脚本

    利用这个思路,可以对模板进行任意的改造

    #!/bin/bash
    # generate_sql.sh
    function detail_mask(){
        FILE=$1
        TABLE=`tail -n1 $FILE|xargs`
        DB=`echo $TABLE | awk -F "_" '{print $1}'`
        SQL="SELECT \n"
        CNT=0;
        for word in `sed  '1d;/^from/,+5d' $FILE |xargs|sed 's/,//g'`; 
        do  
            if (( $CNT==0 ))
            then
                CNT=1
                LINE="\t RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.${word},'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.${word},'') AS STRING)),-2,2)),7,'*') AS ${word} \n"
            else
                LINE="\t,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.${word},'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.${word},'') AS STRING)),-2,2)),7,'*') AS ${word} \n"
            fi
            SQL=${SQL}${LINE}
        done
        SQL=${SQL}"FROM ${DB}.${TABLE} a \n
            JOIN dev.trd_pty_carr_bus_tmp b \n
            ON   a.carrier_name = b.carr_bus_name \n
            WHERE a.dp='ACTIVE' \n
            AND   a.is_delete=1 \n
            AND   a.create_time>'2021-08-24' \n
            LIMIT 1000"
        echo "-----------------------------------------------------------明细数据要求-----------------------------------------------------------" > ${TABLE}".sql"
        echo -e ${SQL} >>  ${TABLE}".sql"
    }
    
    
    function non_blank_rate(){
        FILE=$1
        TABLE=`tail -n1 $FILE|xargs`
        DB=`echo $TABLE | awk -F "_" '{print $1}'`
        sub_sql1="SELECT \n"
        sub_sql2="FROM \n\t( \n
                              \t SELECT\n"
        CNT=0
        for word in `sed  '1d;/^from/,+5d' $FILE |xargs|sed 's/,//g'`; 
        do 
            if (( $CNT==0 ))
            then
                CNT=1
                sub_sql1=${sub_sql1}"\t CAST(SUM(nonblank_${word})/COUNT(1) AS DECIMAL(5,2)) AS ${word}\n"
                sub_sql2=${sub_sql2}"\t\t CASE 
                                     \t   WHEN ${word} IS NULL OR TRIM(CAST(${word} AS STRING))='' THEN 0
                                     \t   ELSE                                                              1
                                     \t   END nonblank_${word}\n"
            else
                sub_sql1=${sub_sql1}"\t,CAST(SUM(nonblank_${word})/COUNT(1) AS DECIMAL(5,2)) AS ${word}\n"
                sub_sql2=${sub_sql2}"\t\t,CASE 
                                     \t   WHEN ${word} IS NULL OR TRIM(CAST(${word} AS STRING))='' THEN 0
                                     \t   ELSE                                                              1
                                     \t   END nonblank_${word}\n"
            fi
        done
        SQL=${sub_sql1}${sub_sql2}"\t\tFROM ${DB}.${TABLE} \n
                                   \t\tWHERE dp='ACTIVE'\n
                                   ) tmp"
        echo -e "\n" >> ${TABLE}".sql"
        echo "-----------------------------------------------------------汇总数据要求-----------------------------------------------------------" >> ${TABLE}".sql"
        echo -e ${SQL} >>  ${TABLE}".sql"
    }
    
    USAGE="Usage: $0 {file_path} {n}"
    
    function main(){
        if (( $#<2 ))
        then
            echo $USAGE
            return;
        fi
    
        case $1 in 
            1)
                detail_mask $2
            ;;
            2)
                non_blank_rate $2
            ;;
            *)
                echo "Usage: $0 {file_path} {1|2}"
        esac
    
    }
    
    function entry(){
        if (( $#<1 ))
        then
            echo "Usage: $0 {file_path}"
            return;
        fi
       main 1  $1
       main 2  $1
    }
    
    entry $@
    

    可以讲一下格式数据生成标准的ETL

    select
      start_date,
      change_code,
      business_group_id,
      organization_id,
      name,
      date_from,
      date_to,
      short_code,
      set_of_books_id,
      default_legal_context_id,
      usable_flag
    from
      dwd_tms_tfc_trans_bill
    

    生成的ETL

    -----------------------------------------------------------明细数据要求-----------------------------------------------------------
    SELECT 
    	 RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.start_date,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.start_date,'') AS STRING)),-2,2)),7,'*') AS start_date 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.change_code,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.change_code,'') AS STRING)),-2,2)),7,'*') AS change_code 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.business_group_id,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.business_group_id,'') AS STRING)),-2,2)),7,'*') AS business_group_id 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.organization_id,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.organization_id,'') AS STRING)),-2,2)),7,'*') AS organization_id 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.name,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.name,'') AS STRING)),-2,2)),7,'*') AS name 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.date_from,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.date_from,'') AS STRING)),-2,2)),7,'*') AS date_from 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.date_to,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.date_to,'') AS STRING)),-2,2)),7,'*') AS date_to 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.short_code,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.short_code,'') AS STRING)),-2,2)),7,'*') AS short_code 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.set_of_books_id,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.set_of_books_id,'') AS STRING)),-2,2)),7,'*') AS set_of_books_id 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.default_legal_context_id,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.default_legal_context_id,'') AS STRING)),-2,2)),7,'*') AS default_legal_context_id 
    	,RPAD(CONCAT(SUBSTR(TRIM(CAST(NVL(a.usable_flag,'') AS STRING)),1,2),'***',SUBSTR(TRIM(CAST(NVL(a.usable_flag,'') AS STRING)),-2,2)),7,'*') AS usable_flag 
    FROM dwd.dwd_tms_tfc_trans_bill a 
     JOIN dev.trd_pty_carr_bus_tmp b 
     ON a.carrier_name = b.carr_bus_name 
     WHERE a.dp='ACTIVE' 
     AND a.is_delete=1 
     AND a.create_time>'2021-08-24' 
     LIMIT 1000
    
    
    -----------------------------------------------------------汇总数据要求-----------------------------------------------------------
    SELECT 
    	 CAST(SUM(nonblank_start_date)/COUNT(1) AS DECIMAL(5,2)) AS start_date
    	,CAST(SUM(nonblank_change_code)/COUNT(1) AS DECIMAL(5,2)) AS change_code
    	,CAST(SUM(nonblank_business_group_id)/COUNT(1) AS DECIMAL(5,2)) AS business_group_id
    	,CAST(SUM(nonblank_organization_id)/COUNT(1) AS DECIMAL(5,2)) AS organization_id
    	,CAST(SUM(nonblank_name)/COUNT(1) AS DECIMAL(5,2)) AS name
    	,CAST(SUM(nonblank_date_from)/COUNT(1) AS DECIMAL(5,2)) AS date_from
    	,CAST(SUM(nonblank_date_to)/COUNT(1) AS DECIMAL(5,2)) AS date_to
    	,CAST(SUM(nonblank_short_code)/COUNT(1) AS DECIMAL(5,2)) AS short_code
    	,CAST(SUM(nonblank_set_of_books_id)/COUNT(1) AS DECIMAL(5,2)) AS set_of_books_id
    	,CAST(SUM(nonblank_default_legal_context_id)/COUNT(1) AS DECIMAL(5,2)) AS default_legal_context_id
    	,CAST(SUM(nonblank_usable_flag)/COUNT(1) AS DECIMAL(5,2)) AS usable_flag
    FROM 
    	( 
     	 SELECT
    		 CASE 	 WHEN start_date IS NULL OR TRIM(CAST(start_date AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_start_date
    		,CASE 	 WHEN change_code IS NULL OR TRIM(CAST(change_code AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_change_code
    		,CASE 	 WHEN business_group_id IS NULL OR TRIM(CAST(business_group_id AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_business_group_id
    		,CASE 	 WHEN organization_id IS NULL OR TRIM(CAST(organization_id AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_organization_id
    		,CASE 	 WHEN name IS NULL OR TRIM(CAST(name AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_name
    		,CASE 	 WHEN date_from IS NULL OR TRIM(CAST(date_from AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_date_from
    		,CASE 	 WHEN date_to IS NULL OR TRIM(CAST(date_to AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_date_to
    		,CASE 	 WHEN short_code IS NULL OR TRIM(CAST(short_code AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_short_code
    		,CASE 	 WHEN set_of_books_id IS NULL OR TRIM(CAST(set_of_books_id AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_set_of_books_id
    		,CASE 	 WHEN default_legal_context_id IS NULL OR TRIM(CAST(default_legal_context_id AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_default_legal_context_id
    		,CASE 	 WHEN usable_flag IS NULL OR TRIM(CAST(usable_flag AS STRING))='' THEN 0 	 ELSE 1 	 END nonblank_usable_flag
    		FROM dwd.dwd_tms_tfc_trans_bill
     		WHERE dp='ACTIVE'
     ) tmp
    
    
    展开全文
  • etl自动化工具之kettle下载

    千次阅读 2019-02-02 13:49:57
    由于工作需要下载kettle最新版本 网址:https://community.hitachivantara.com/docs/DOC-1009855 打开之后页面如下图所示: 向下滑动 点击8.2Stable下载最新版本。 未完待续。。 ...
  • 据GIR (Global Info Research)调研,按收入计,2021年全球电子设计自动化工具收入大约 百万美元,预计2028年达到 百万美元,2022至2028期间,年复合增长率CAGR为 %。同时2020年全球电子设计自动化工具销量大约 ,...
  • 8.0是一款基于B/S架构的轻量免费企业级ETL任务批量处理工具,去公众号【TASKCTL】可直接获取产品官方永久使用授权;
  • 您可以在 TASKCTL—ADMIN 初始部署平台自定义作业节点图标。 图形节点搜索定位:在“作业节点搜索框”输入节点名称关键词(支持不区 分大小写的模糊匹配),系统自动弹出所匹配的节点列表。点击列表项后将 自动...
  • TASKCTL是一款企业级完全国产免费的ETL批量调度作业处理平台;...具备可视图形拖拽设计界面以及可视任务管理、计划调度、实时监控、消息预警和日志分析;有效弥补了传统ETL工具在调度管理和监控分析方面不足。
  • ETL测试 目的是确保从源到目的地数据...在该ETL测试类型中要注意从数据层面进行自动化测试和管理能力的植入。 Source to Target Testing(Validation Testing) 该类型的测试主要元组转换的数据是否满足预期的转换
  • 四、ETL基本过程 4.1 ETL前期的需求整合 4.2 将数据插入数仓的3个子系统 4.3 数据清洗的5个子系统 4.4 发布数据的13个子系统 4.5 ETL管理相关的13个子系统 4.6 ETL系统设计和开发的十个步骤 五、企业数据仓库总线...
  • java管理源码为数据仓库自动化生成元数据模式 意图 提供一个协作空间来讨论有关 ETL 生成元数据的交换格式,支持数据仓库自动化。 此适配器应包含为数据仓库解决方案生成转换逻辑所需的所有元数据。 链接/结构 已...
  • 特质Python数据仓库和信息平台metrique提供了一个简单的python API,以支持ETL工作负载,以透明,历史对象持久性以及与流行的python科学计算库的紧密客户端集成,以迭代,快速和可重现的方式从分散的源中提取数据,...
  • kettle自动化的那些事

    2020-11-04 10:59:11
    kettle自动化的那些事 一、kettle介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定(数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成...
  • 功能 : 实现数据的预处理,数据清洗过程,将原始数据经过ETL处理变成想要的数据,进行下一步的应用实现抽取∶读取需要处理的原始数据。转换︰将原始数据转换为目标数据加载︰将处理好的目标数据放入数据仓库中.........
  • 企业在发展过程中,信息程度会不断提高,为了解决特定信息问题,企业系统中的信息系统数量也越来越多,从企业的大粒度来看,业务流程有一定的联系,但是在细粒度上,数据相互独立,内在逻辑互不联系,信息孤岛...
  • x:1003:root usermod -a -G supergroup root 同步系统权限到HDFS,会自动同步其他节点的权限 su - hdfs -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings" 2 上传驱动到HDFS CDH集群下基于hue的sqoop的...
  • 针对建立数据仓库时数据源存在结构多样性和语义异质性的问题,提出了本体驱动ETL过程的设计方法。通过元数据抽象以及语义建立本体,并运用OWL实现本体...该方法能有效解决数据源异构问题,并实现ETL过程的部分自动化
  • bigdata_ETL结构项目

    2021-10-30 22:05:13
    1.采集微博数据ETL项目: 数据输入与输出 输入(两个类别的文件集合) 房地产评论主题下的对应的用户基本信息文件集和评论内容文件集,两者之间是通过用户id关联的。 通过一定的Java程序设计做数据解析、结构...
  • 为了演示Kettle对数据仓库的支持能力,我们的示例将使用Start作业项实现ETL执行自动化。 一、使用crontab 上一篇我们已经创建好用于定期装载的Kettle作业,将其保存为regular_etc.kjb文件。这里建立一个内容如下的...
  • PS亲爱的朋友们。... 您可以从此站点或Maven下载jar文件。 Groovy中基于GETL的软件包,可...所有常规工作ETL应尽可能自动化。 4.编译代码上的保释速度和优化后备; 5.复杂的类层次结构可确保轻松连接其他开源解决方案。
  • TASKCTL是塔斯克信息技术有限公司,专为数据仓库批量调度自动化打造的一款【国产免费】企业级调度管理监控平台;该平台拥有完善的体系、全面的功能、简易的操作和超前的设计风格,使产品结合 ETL 调度技术领域的特点...
  • PS亲爱的朋友们。... 您可以从该站点或 maven 下载 jar 文件。 GETL - Groovy 中的基于包...所有日常工作ETL应该尽可能自动化; 4.即时编译代码,为优化提速和预留; 5. 复杂的类层次结构保证其他开源解决方案的轻松连接。
  • 1. 数据仓库与ETL 1.1 数据仓库 本质:专门针对于数据存储模型 实现:Mysql、Oracle、Hive 应用:专门用于实现将各种各样的数据进行统一规范的数据存储,为所有数据应用提供数据 数据分析 数据挖掘 用户画像 ...
  • 「漏洞分析」AIoT_自动化评估探索和实践 - 数据库安全 身份管理 WEB应用防火墙 大数据 安全对抗 安全管理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,062
精华内容 8,024
关键字:

etl自动化

友情链接: MFC.zip