ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ETL调度

ETL调度

原创 Linux操作系统 作者:ceo_lxy 时间:2011-03-14 11:11:37 0 删除 编辑

只有您可以确定何时在环境中调度 ETL 运行。在调度 ETL 之前请仔细考虑所有相关性。有关 ETL 和相关性的一般描述,请参阅理解 ETL 过程

要配置和调度 ETL 过程,请完成以下步骤:

  1. 运行 ETL 初始化过程(只运行一次),您可在仓库包的实现指南中关于安装后过程的部分中找到这些过程描述。不是所有的仓库包都有初始化过程。请参阅运行 ETL 初始化过程
  2. 确定仓库包的任何 ETL 过程是否与其它 ETL 过程有相关性。请参阅理解 ETL 过程。相关性可存在于一个仓库包的 ETL 过程之间,也可存在于不同仓库包的 ETL 过程之间。随每个仓库包提供的实现指南指示它的任何 ETL 过程是否有相关性。请参阅确定应用程序 ETL 过程相关性
  3. 如果任何 ETL 过程之间存在相关性,则您可以指定快捷方式将相关的过程链接在一起并顺序地运行它们。请参阅创建用以链接 ETL 过程的快捷方式

    如果所有 ETL 过程之间均不存在相关性,或者您知道何时要运行 ETL 过程以及运行多久,则您可调度 ETL 过程在指定的时间运行。

  4. 对于何时及以何种频度运行 ETL 过程,请指定一个时间范围和时间间隔。请参阅调度 ETL 步骤
  5. 验证快捷方式定义和 ETL 调度信息是正确的。请参阅确认 ETL 过程

您可将调度方法组合在一起,调度一些步骤顺序地运行,而调度另一些步骤在指定时间运行。在此情况下,您必须根据情况同时遵循这两组指示,即将一些 ETL 步骤配置为顺序运行,而将另一些步骤配置为在指定时间运行。

注:
在调度每个仓库包的 ETL 过程时,请记下并保存调度信息以及链接这些过程的顺序。如果向仓库包安装修订程序,您可能必须重新调度 ETL 过程,而这些信息将帮助您完成此操作。

运行 ETL 初始化过程

ETL 初始化过程仅运行一次。对于用于 V1.2 的仓库包,初始化过程将自动运行。对于用于 V1.1 的仓库包,您必须手工运行初始化过程。

注意事项:
多次运行 ETL 初始化过程可导致中央数据仓库中出错。

主题区域文件夹中的每个仓库包文件夹都包含一个过程文件夹,后者又包含由仓库包定义的 ETL 过程。通过单击文件夹名称旁边的加号(+),展开每个仓库包的过程文件夹。

ETL 初始化过程是由一些仓库包提供的,您可在随仓库包提供的实现指南中关于安装后过程的部分中找到相关描述。ETL 初始化过程的命名约定有助于您在每个仓库包的过程文件夹中确定它们。例如,ETL 初始化过程的名称包含单词“Initialize”,如下所示:

productCode_c05_Initialize_Process

ETL 步骤的名称包含字符串 init,如下所示:

productCode_c05_s010_init

请遵循调度 ETL 步骤中的指示步骤,将 ETL 初始化过程调度为仅运行一次。初始化步骤运行之后,请查看使用“运行中的任务”窗口中所指定的日志信息来验证是否成功完成了 ETL 初始化过程。

注:
一些仓库包提供附加过程,例如归档过程,这些过程也只应运行一次。请参阅随每个仓库包提供的实现指南中关于 ETL 过程的部分,以确定是否还有对于仓库包应只运行一次的其它过程。

调度注意事项

调度 ETL 过程有多种方法。您选择调度 ETL 过程的方法取决于环境中 ETL 过程之间的相关性。一些仓库包既提供中央数据仓库 ETL 也提供数据集市 ETL。而有些仓库包则只提供中央数据仓库 ETL。在每个仓库包的实现指南中有关安装后过程的部分中提供了 ETL 过程相关性的信息。

以下例举了一些调度方案:

  • 调度中央数据仓库 ETL,使之在每天的指定时间运行,而调度数据集市 ETL,使之在每天的另一指定时间运行。中央数据仓库 ETL 和数据集市 ETL 可同时运行。
  • 调度多个中央数据仓库 ETL,使它们在同一指定时间运行,然后在它们完成后,链接数据集市 ETL 过程,使它们以顺序方式运行。

  • 将多个数据集市 ETL 链接到同一个中央数据仓库 ETL。

以下各章节提供有关在指定时间调度和按顺序调度的更多信息。

将 ETL 过程调度为在指定时间运行的注意事项

您可以调度之间不存在相关性的 ETL 过程在指定时间运行。这并不保证它们按顺序运行。第一次设置 ETL 过程所需的时间较少,但是您仍需要考虑以下事项:

  • 调度为在指定时间运行的所有 ETL 过程即使在某个 ETL 过程失败的情况下也会尝试运行。如果问题出在某个特定 ETL 上,则其余的 ETL 过程仍试着运行。如果其它 ETL 过程依赖于失败的过程,则它们也会失败。 如果问题是由于空间约束或影响到所有 ETL 过程的其它问题而引起的,则其它的 ETL 过程也将失败。
  • 如果在任何 ETL 过程之间存在未知的相关性,则在指定时间运行 ETL 过程可能导致错误的产生。
  • 更新中央数据仓库中表的所有 ETL 过程不得调度为在同一时间运行。由于数据中可能存在未知的相关性,因此根据您的环境,同时向相同的一些表进行更新可能引起性能问题。

您可将 ETL 过程调度为按顺序运行,即使不存在任何已知的相关性。这确保了 ETL 过程在所有先前的过程成功完成之后才启动,从而使您能够在发生错误的情况下方便地识别出失败的过程。

将 ETL 过程调度为按顺序运行的注意事项

如果正如仓库包的实现指南中有关安装后过程的部分中所描述,ETL 过程之间存在相关性,则您可调度这些 ETL 过程按顺序运行。这使得第一次设置 ETL 过程需要花费较多的时间,但如果在 ETL 运行周期中发生错误,则可在调试和恢复过程中节省不少精力。

以下列表描述了将 ETL 过程调度为顺序运行的一些注意事项:

  • 您必须创建快捷方式将所有相关的 ETL 进程链接在一起。使用快捷方式,您可以仅指定何时及以何种频度运行第一个 ETL 过程。所有其它相关应用程序 ETL 过程均自动运行,因为它们与第一个过程链接在了一起。有关创建快捷方式的更多信息,请参阅创建用以链接 ETL 过程的快捷方式
  • 遇到错误时,ETL 过程中的后续步骤并不运行。这样不会产生很复杂的恢复情形。
  • 禁用对链接在一起的过程的调度只需要您禁用第一个过程即可。如果第一个过程不运行,则与第一个过程链接的过程一个也不会运行。
  • 意外调度多个仓库包在同一时间运行会导致性能问题。

确定应用程序 ETL 过程相关性

过程文件夹中列出的 ETL 过程名称遵循 Enabling an Application for Tivoli Data Warehouse 中所定义的命名约定。ETL 过程的名称可帮助您确定它们运行的顺序。

ETL 过程名称构造如下:

productCode_processID_processDescription_Process

此过程名称中的变量如下所示:

  • productCode 是标识仓库包的唯一代码。
  • processID 是 cnn 或 mnn。cnn 过程标识是将数据装入中央数据仓库的 ETL 过程,也称为中央数据仓库 ETL 过程。mnn 过程标识是将数据写入一个或多个星型模式(报告创建自这些星型模式)的 ETL 过程,也称为数据集市 ETL 过程。nn 是从 05 开始的两位数。
  • processDescription 是对过程的描述。

例如:

APM_c05_Initialize_Process

这些过程应以以下顺序运行:

  1. 名为 productCode_cnn_processDescription_Process 的过程,按每个仓库包的 nn 值以升序排列。
  2. 名为 productCode_mnn_processDescription_Process 的过程,按每个仓库包的 nn 值以升序排列

在运行具有相关性的 ETL 过程运行之前,您必须调度这些过程所依赖的 ETL 过程先运行。确定所列出的仓库包的 ETL 调度顺序,并记下该顺序,以供日后参考。

例如,如果您有两个仓库包 AP1AP2,AP2 依赖于 AP1,且以下是这两个仓库包的 ETL 步骤:

  • AP1_c05_s010_Extract
  • AP1_c10_s010_Transform.
  • AP1_c15_s010_Load
  • AP1_m05_s010_Mart
  • AP2_c05_s010_Extract
  • AP2_m05_s010_Mart

这些 ETL 步骤必须以以下顺序链接在一起:

  1. AP1_c05_s010_Extract(包含指向 AP1_c10_s010_Transform. 的快捷方式)
  2. AP1_c10_s010_Transform(包含指向 AP1_c15_s010_Load 的快捷方式)
  3. AP1_c15_s010_Load(包含指向 AP2_c05_s010_Extract 的快捷方式)
  4. AP2_c05_s010_Extract(包含指向 AP1_m05_s010_Mart 的快捷方式)
  5. AP1_m05_s010_Mart(包含指向 AP2_m05_s010_Mart 的快捷方式)
  6. AP2_m05_s010_Mart

对于用于 V1.2 的仓库包,链接仓库包内各步骤的快捷方式由仓库包提供。您只需为仓库包之间的相关性创建快捷方式即可。而对于用于 V1.1 的仓库包,您必须既为仓库包内的相关性又为仓库包之间的相关性创建快捷方式。

注意: 按适当顺序运行具有相关性的 ETL 过程是很重要的。否则会导致中央数据仓库出错。

创建用以链接 ETL 过程的快捷方式

您要为应用程序 ETL 过程创建快捷方式才能使它们按指定顺序运行,并且您应确保仅当前面的 ETL 过程成功完成之后后面的 ETL 过程才能运行。

一些应用程序提供诸如只能运行一次的初始化过程之类的过程。对于这些过程,请不要使用快捷方式将它们链接在一起。请参阅随每个仓库包提供的实现指南以确定哪些过程(如果有的话)仅应运行一次。

在创建快捷方式之前,您应对 TWH_MD 数据库进行备份,以备需要恢复到所安装仓库包的初始状态之用。此外,还应记下链接的过程和链接这些过程所执行的步骤,并保存这些信息。如果向仓库包安装了修订程序,则您可能必须重新调度所有的 ETL 过程,而您记下的信息将帮助您执行此操作。

请执行以下步骤来创建快捷方式:

  1. 在“数据仓库中心”窗口的仓库包过程文件夹中,双击要运行的第一个仓库包ETL 过程的名称。此时将显示“过程模型”窗口,其中说明该 ETL 过程将如何转换数据。其中通过一个个步骤说明了 ETL 过程流,并使用不同的图标将过程中使用的数据表与实际步骤区分开。在“过程模型”窗口中向下滚动可找到过程中运行的最后一个步骤的名称。
    图 15. DB2 数据仓库中心的“过程模型”窗口
    DB2 数据仓库中心的“过程模型”窗口
  2. 请如下所示更改您在创建快捷方式的过程中最后一个步骤的方式:
    1. 在“过程模型”窗口中,右键单击“过程模型”窗口中最后一个步骤的步骤名称。
    2. 选择方式  -> 开发

      步骤必须处于开发方式才能创建或修改快捷方式。

  3. 单击“过程模型”窗口中左工具栏里的创建快捷方式按钮( 快捷方式按钮是一个向上弯曲指向右方的箭头),然后将鼠标移动到“过程模型”窗口中最后一个步骤下面的空白位置,并再次单击。
  4. 在“创建快捷方式”窗口中,找到适当的过程文件夹并选择包含要运行的下一步骤的过程。您选择的过程或是列在同一仓库包的过程文件夹中的下一过程,或是列在下一仓库包的过程文件夹中的第一个过程。要运行的下一步骤是此新过程中的第一个步骤。
  5. 选择要运行的下一个步骤,通过单击右箭头按钮(>)将该步骤从可用步骤移到选定步骤中,然后单击确定。此时快捷方式将添加到“过程模型”窗口中。快捷方式以一个弯曲的箭头出现在步骤图标的左下方,它的名称反映了要运行的下一 ETL 步骤。
  6. 在“过程模型”窗口中右键单击新添加的快捷方式,然后单击链接工具按钮链接工具按钮是一个向下指的彩色箭头即左工具栏上向下指的彩色箭头图标),然后选择成功时。ETL 过程运行时,成功时参数指定由快捷方式调用的步骤仅当前一步骤成功完成时才运行。如果步骤运行时发生错误,则该步骤会退出,且后续步骤不会运行。
  7. 单击过程中的最后一个步骤(即与快捷方式链接的步骤),然后将此步骤拖至快捷方式。现在,一个绿色箭头将该步骤链接到了快捷方式。绿色表示快捷方式仅当前一步骤成功完成时才运行。该快捷方式现在是过程中的最后一个步骤。
  8. 在“过程模型”窗口中,单击过程 -> 保存
  9. 关闭“过程模型”窗口。

您要创建快捷方式的下一过程是包含从新快捷方式调用的步骤的过程。

关于创建快捷方式的其它信息,请参阅 《IBM DB2 通用数据库数据仓库中心管理指南》。

现在您已链接了 ETL 步骤,请调度第一个 ETL 过程中的第一个步骤运行。

调度 ETL 步骤

ETL 调度过程指定何时及以何种频度运行 ETL 过程。调度 ETL 过程运行的最佳时间是系统活动最少的时候。完成 ETL 过程所需的时间取决于应用程序生成的数据量。如果可能的话,不要调度 ETL 过程在常规工作时段运行。

如果 ETL 过程依赖于另一个 ETL 过程,或者您想要确保过程按顺序运行,则请确保完成了创建用以链接 ETL 过程的快捷方式中的步骤。如果使用快捷方式将 ETL 过程链接在一起,则为第一个 ETL 过程的第一个步骤指定调度参数。其余的过程将在前一步骤成功完成后自动运行。如果 ETL 过程中有任何步骤失败,则所有其余的过程将不运行。

您要对将调度的每个 ETL 过程遵循相同的过程,但应根据是调度 ETL 过程运行一次、在指定时间运行还是按顺序运行在“调度”窗口中指定不同的参数,如以下步骤所示:

  1. 仓库包安装之后,ETL 过程中步骤的方式应设置为开发。但是,如果您需要更改 ETL 步骤的方式,请执行以下步骤:
    1. 在“数据仓库中心”窗口的左导航面板中,单击仓库包的过程文件夹。
    2. 单击被调度运行的仓库包 ETL 过程的名称。这些过程步骤然后将在右导航面板中列出。
    3. 选择所有需要更改的步骤名称。
    4. 右键单击该组步骤,然后选择方式
    5. 选择开发测试

      步骤必须处于开发方式或测试方式才能被调度。

    6. 对包含方式需要更改的 ETL 步骤的每个过程重复这些步骤。
  2. 如果已针对您的部署定义了 DB2 远程仓库代理程序,则对于仓库包的 ETL 过程的每一步骤,请完成这些指示信息来指定将运行每一步骤的 DB2 仓库代理程序:
    1. 用鼠标右键单击步骤名称并选择属性
    2. 单击处理选项选项卡。
    3. 代理站点下拉列表选择 DB2 远程仓库代理站点来运行此步骤。以下示例显示为数据集市 ETL 过程的一个步骤选择的 DB2 远程仓库代理站点。
      ETL 过程步骤的 DB2 远程代理站点处理选项
    4. 单击确定以关闭“属性”窗口。
  3. 过程文件夹,选择包含要运行的第一个步骤的过程。包含在过程中的一个个步骤列在“数据仓库中心”窗口的右窗格中。
  4. 在“数据仓库中心”窗口的右窗格中,选择您希望调度的步骤并选择调度
  5. 如果您要运行仅应运行一次的 ETL 步骤,请执行以下步骤:
    1. 在“调度”窗口的“调度”选项卡中,从时间间隔下拉列表选择仅一次并输入步骤的运行日期和时间。
    2. 单击添加
    如果您要调度 ETL 步骤,使之自动运行,请执行以下步骤:
    1. 在“调度”窗口的“调度”选项卡中,选择除仅一次以外的时间间隔,并输入频率、星期几以及开始和结束日期。这指定何时及以何种频度运行 ETL 步骤。
    2. 单击添加
  6. 在“调度”窗口中单击通知选项卡。
    图 16. 过程调度窗口的“通知”页面
    过程调度窗口的“通知”页面
  7. 在“通知时间”框中,选择完成时以指定您希望在 ETL 步骤结束时得到通知。
  8. 选择通知类型、要接收通知的用户以及其它详细信息,然后单击添加

    请参阅《IBM DB2 通用数据库数据仓库中心管理指南》或DB2 数据仓库中心联机帮助,以获取关于设置通知的更多信息。

    注:
    我们强烈建议您对 ETL 过程中的每一步骤选择通知时间:完成时。此信息有助于监视 ETL 过程。选择“电子邮件通知类型”有助于确保采取及时的措施来解决问题。
  9. 单击确定
  10. 将所有步骤更改为生产方式,如下所示:
    1. 在“数据仓库中心”窗口的右窗格中,选择除快捷方式所调用步骤之外的所有步骤,然后右键单击。
    2. 选择所有需要更改的步骤名称。
    3. 右键单击该组步骤,然后选择方式
    4. 选择生产

      步骤必须处于生产方式才能自动运行。

  11. 在“过程模型”窗口中,单击过程 -> 保存
  12. 关闭“过程模型”窗口。

关于其它通过 DB2 数据仓库中心调度 ETL 过程的信息,请参阅 《IBM DB2 通用数据库数据仓库中心管理指南》 或 DB2 数据仓库中心的联机帮助。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12122734/viewspace-689363/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 数据库的三范式
请登录后发表评论 登录
全部评论

注册时间:2008-06-02

  • 博文量
    519
  • 访问量
    490238