创建数据流

创建数据流的第一步是将数据流与项目相关联,选择其工作方式,并定义将在流运行时使用的 SQL 执行数据库。

准备工作

准备工作

创建数据仓储项目。

关于本任务

过程

要创建数据流:

过程

  1. 在 "数据项目资源管理器" 中,展开将在其中创建新数据流的数据仓储项目文件夹。 右键单击 数据流 文件夹,然后选择 新建 > 数据流
  2. 完成 "新建数据流" 向导。 输入数据流的名称,并选择流的工作方式 (联机或脱机):
    针对数据库工作(联机)
    此方式需要与数据库的实时连接。 创建数据库连接时会生成动态数据模型,在以联机方式设计数据流时,可以使用此模型来选择源表和目标表以及其他数据库对象。
    要点: 对底层数据库进行更改时,不会自动刷新生成的模型。 但是,您可以通过关闭并重新打开数据流或单击数据流画布上的 刷新 图标来刷新模型: "刷新数据库" 图标
    选择要用作 SQL 执行数据库的数据库类型。
    单击 下一步 并定义数据库连接,然后完成向导。
    针对数据模型工作(脱机)
    此方式不需要数据库连接。 如果您在项目中已有可在设计过程中使用的物理数据模型,或者如果您打算稍后创建和引用模型,请选择此方式。
    选择要用作 SQL 执行数据库的数据库类型。
    单击 完成 以完成向导。
    完成向导后,新数据流的名称将显示在数据项目资源管理器中,并且将打开空白数据流画布。 在数据仓储项目中创建新数据流时,将向该项目添加多个新文件。 所有这些文件都隐藏在数据项目资源管理器中,并且数据流将作为单个条目列出。 要浏览其他关联文件,请打开 " Navigator " 视图。 以联机方式创建的数据流在其名称后的括号中包含数据库连接的名称。 dataflow100 (DWESAMP)例如:
    重要信息: 请勿从 " Navigator " 视图中的数据流文件夹删除文件。 如果删除元数据文件 (扩展名为 etlmetadataxmi的数据流文件) ,那么该数据流将永久损坏并且无法复原。 也不要直接从文件系统中删除这些文件。 Eclipse 或源代码管理环境可能会维护历史版本,这意味着可能可以检索已删除的文件,但不保证此方法可以检索最新内容。
  3. 在新数据流的 "属性" 视图中,通过从 SQL 执行数据库 列表框中选择或使用变量来选择流的工作数据库。

    此数据库必须是 Db2 数据库。 如果控制或数据流采用在 Oracle 兼容性方式下创建的表作为目标或数据源,请确保使用在 Oracle 兼容性方式下创建的数据库来设置 SQL 执行数据库。 因为目标或数据源表是在 Oracle 兼容性方式下创建的,所以 SQL 执行数据库也是如此。 在所有其他情况下,数据库不需要与源表和目标表所在的任何数据库相同。 您可以指定数据库模式以及数据库名称。 如果未指定数据库,那么数据流验证将失败。

    如果以联机方式创建流,那么实时连接的数据库将自动设置为 SQL 执行数据库,但您可以更改此设置。

  4. 可选: 在 "属性" 视图中指定信息。
    1. 内部登台表的缺省表空间 字段中,输入固定值或使用变量来标识运行数据流时生成的内部登台表的表空间。
    2. SQL 执行模式 字段中,输入数据流执行期间作为 CURRENT SCHEMA 的模式的名称。 将在临时登台表下创建视图。 缺省情况下, SQL 执行模式设置为 IWSCHEMA${RESERVED/RUN_ID} ,以避免并发执行期间表或视图名称冲突。
    3. 临时登台表名称前缀 字段中,输入固定值或使用变量来指定格式内部登台表名称。 登台表的名称以 [name prefix] [unique number] 格式生成。 例如,如果 MYTEMP 是名称前缀,那么内部生成的登台表将生成为 MYTEMP21和 MYTEMP4321等。 缺省值设置为 "IWTEMP${RESERVED/RUN_ID}" ,以避免在并发执行期间发生表名冲突。
      注: 要在并发数据流执行期间避免表和视图名称冲突,请将变量 ${RESERVED/RUN_ID}用于 SQL 执行模式临时登台表名称前缀
      ${RESERVED/RUN_ID}
      对于每次执行都是唯一的,因此名称不会发生冲突。 您可以使用已包含该变量的缺省值 (${RESERVED/RUN_ID})
    4. 选择 对代码生成启用优化 选项,以通过代码生成引擎对流和生成的优化代码应用优化规则。 典型的优化方法可消除不必要的列,运算符和谓词的合并。
    5. 选择 对分布式查询启用代码生成优化 选项,以仅在涉及远程表时应用优化规则。 例如,下推谓词或连接到远程数据库是典型的优化方法。
      注: 此优化可将特定于数据库的操作下推至远程数据库。 如果远程数据库与本地数据库不同 (例如,如果本地数据库为 Db2 ,远程数据库为 Informix®) ,那么操作可能会失败。 请仔细使用此选项。
    6. 选择 在可能的情况下使用声明的临时表作为内部登台表 选项,以在可能的情况下使用 Db2 声明的临时表作为登台表。 在某些情况下,无法使用声明的临时表。 例如,如果某个表由视图引用。 在此场景中,即使选择了此选项,也会使用常规表。