问题标签 [etl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2986 浏览

data-warehouse - Ab Initio ETL 数据仓库外壳工具的视频教程!


请告诉我在哪里可以找到 Ab-Initio ETL Data Ware Housing 工具的视频教程。
我在谷歌上冲浪,但我没有找到任何材料。
提前致谢。

0 投票
1 回答
482 浏览

sql-server - SQL Server ETL 进程事务日志

可以在 ETL 过程的暂存数据库中简单地设置恢复模式吗?客户甚至没有进行定期备份!那么保留事务日志的意义何在...

我建议在批量导入后组织一次每日备份,就是这样......

有什么反对这个计划的吗?3周后事务日志也达到80GB...

干杯

0 投票
1 回答
8109 浏览

sql - Sybase:如何使用 SQL 从 CHAR 或 VARCHAR 字段中删除不可打印的字符?

我正在使用一个 Sybase 数据库,该数据库似乎在某些字符串字段中包含不可打印的字符,这会丢弃我们的一些处理代码。乍一看,它似乎只有换行符和回车,但其中还有一个 ASCII 代码 27 - 一个 ESC 字符、一些重音字符和一些其他奇怪的东西。

我没有直接访问权限来更改数据库,因此更改坏数据不是一种选择。现在我不得不将其过滤掉。我们正在尝试从一个数据库中导出表数据,并在夜间批处理中将其加载到另一个应用程序使用的数据库中。

理想情况下,我想要一个可以传递字符列表并让 Sybase 返回删除了这些字符的数据的函数。如果可能的话,我想保留一些我们可以用普通 SQL 做的事情。

像这样删除 ASCII 0 - 31 的字符。

从表中选择 str_replace(FIELD1, (0-31), NULL) 作为 FIELD1,str_replace(FIELD2, (0-31), NULL) 作为 FIELD2

到目前为止, str_replace 是我能找到的最近的,但它只允许用另一个字符串替换一个字符串。不支持字符范围,也不会让我做上述事情。

我们在 Unix 服务器上的 Sybase ASE 12.5 上运行。

0 投票
2 回答
1673 浏览

sql-server - 可重用的 SQL Server 存储过程;嵌套;全局变量

我想制作一些可在许多其他存储过程中调用的可重用、有点动态的 TSQL 代码,但我正在努力解决如何使用 SQL Server 实现这一点。

环境是许多分布式源系统数据库,它们将拥有自己的包装存储过程,这些存储过程将从公共 ETLManagement DB 调用这些模块化存储过程中的一些。包装 sproc 将调用其中一些 commom/re-usable sproc(对一些动态定义的控制表执行操作),然后是 INSERT INTO 语句(由源系统拥有和定义),然后是更多的 commom/re - 可用的存储过程。

一个主要障碍是我似乎无法在嵌套存储过程中声明变量,如何声明所有源系统存储过程都可以读取的全局变量?

我什至是使用普通存储卡的最佳方法,还是有更好的方法?

(原谅我对 TSQL 编程的天真,直到现在我一直在用其他工具做 ETL。)

0 投票
2 回答
592 浏览

sql - ETL 的字段特定错误

我正在 MS SQL Server 中创建一个 ETL 过程,并且我希望有特定于特定行的特定列的错误。例如,数据最初从 excel 文件加载到所有列都在其中的表(我们将称为初始表)中varchar(2000),然后我将数据暂存到另一个表(DataTypedTable),其中包含更具体的数据类型(datetime,int等.) 或更严格地约束 varchar 长度。我需要能够为特定字段创建错误消息,例如:“1 月 13 日”不是提交日期的有效日期格式。请使用 MM/DD/YYYY 格式

这些错误消息需要以某种方式存储,以便在流程的后期,自动化流程可以创建带有错误消息的报告,以便每条消息都引用特定的行和字段(有人需要返回并更正源系统并重新提交excel文件)。所以理想情况下,它将被插入到某种故障表中,并包含失败行的主键、列名和错误消息。

问:所以我想知道这是否可以通过 SSIS 或一些开源工具(如 Talend)来完成,如果可以,您的一般方法是什么?或者你会采取什么手工编码的方法?

我考虑过使用 SQL 的几种方法(直到没有我在 SQL procs 中手动完成 ETL,但我想考虑其他方法。甚至可能是 C#。):

使用游标读取 Initial 表,并为每一行插入一条只有主键的空白记录到 DataTyped 表中,然后对每一列使用单个更新语句,这样如果更新失败,我可以插入一个非常具体的特定于错误消息表中该列的错误消息。

将所有数据按原样插入 DataTyped 表中,但具有重复的列,如SubmissionDateSubmissionDateOld。在初始插入 *Old 列有数据后,其余列是空白的,并且我对基于 SubmissionDateOld 设置 SubmissionDate 的每一列进行了一次更新。

除了建议一种方法之外,我想知道您是否正在使用该方法或在您所做的工作中已经使用的类似方法。

0 投票
3 回答
2132 浏览

sql-server - 使用用户模式对 ETL 暂存表进行分组?

我正在考虑将更新这些表的临时表和存储过程放入它们自己的模式中。这样当将数据从 SomeTable 导入数据仓库时,我会运行 Initial.StageSomeTable 过程,它将数据插入到 Initial.SomeTable 表中。这样,所有处理 Initial staging 的过程和表都被组合在一起。然后我会有一个 ETL 阶段的验证模式,等等。

这似乎比尝试唯一命名所有这些非常相似的表更干净,因为每个表在整个登台过程中都会有多个自身实例。

问题:在 MS SQL Server 中,使用用户模式将表/过程/视图组合在一起是否适合使用用户模式?或者用户模式是否应该用于安全性,例如将对象的权限分组在一起?

0 投票
1 回答
588 浏览

c# - CDC 和 ETL 帮助/建议

这是背景。

我们有几个不同的客户,每个客户都有不同的后端源数据库。我们希望回来获取对后端数据库的实时更改,然后将数据转换为目标数据库中的目标模式。之后,向其他应用程序广播一条消息,提醒更改。

为此,我们需要用于变更检测的 CDC 软件,然后需要一个好的 ETL 工具来转换数据并将其加载到目标数据库中。

到目前为止,我们已经了解了 IBM 的 CDC。研究仍处于初步阶段,但我只是想了解其他人对此的看法。您为此推荐什么程序?我们是否以正确的方式进行此操作...意思是 CDC 软件矫枉过正吗?

0 投票
2 回答
6714 浏览

data-warehouse - 请解释一下 AbInitio 恢复文件(.rec)?我们应该什么时候回滚文件?


请讲一下 AbInitio 恢复文件的概念。

当 Abinitio 图表执行失败时,我们应该在哪些情况下回滚恢复文件,在哪些情况下我们不应该回滚恢复文件。

请提供任何 AbInitio 材料的链接。


谢谢。

0 投票
3 回答
369 浏览

etl - 使用 C# 导入平面文件的最佳 3rd 方组件是什么?

只是寻找一个可以以相当简单的方式以编程方式调用的组件来导入平面数据文件。数据通常为 100,000-500,000 行,每行包含大约 200 个文本字段,长度约为 5 到 250 个字符。数据可以是 CSV、制表符分隔等。

这有一些预算,但如果可能的话,我想保持相当便宜。

0 投票
3 回答
3546 浏览

sql - 如何防止 SSIS 上的 CAST 错误?

问题

如果不允许转换而不是抛出错误,是否可以要求 SSIS 转换一个值返回 NULL

我的环境

我在 Windows Server 2003 上使用 Visual Studio 2005 和 Sql Server 2005。

一般背景

以防你好奇,这是我的用例。我必须将来自某个通用表(具有历史的键/值结构)的数据存储起来,其中包含某种可以是字符串、数字或日期的值。结构是这样的:

我想将原始值放入 Value 列并尝试放入相同的值

  • 在 DateValue 列中,当我能够将其转换为 Datetime 时
  • 当我能够将其转换为数字时,在 NumberValue 列中

这两个类型的列将使以后的各种聚合和操作变得更加容易和快捷。

就是这样,现在你知道我为什么要问这个奇怪的问题了。

=============

在此先感谢您的帮助。