问题标签 [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 投票
3 回答
2732 浏览

sql-server - 我从哪里开始了解 SQL Server 警报或通知?

最近刚开始遇到 SQL Server 代理作业问题,该作业包含一个 SSIS 包,用于提取生产数据并将其汇总到单独的报告数据库中。

认为我尝试使用的一些警报/通知设置导致了问题,因为该作业在前两周一直在无人看管的情况下运行完成。

那么... 从哪里开始阅读 SQL 代理警报和通知的好地方?
我想启用某种警报/通知,以便我始终了解:

  1. 作业成功完成(作为检查以确保始终执行),或
  2. 作业遇到某种错误,其中应包含足够的信息(例如错误号),以便我可以诊断错误的原因

与往常一样,我们将不胜感激任何帮助!

0 投票
3 回答
1197 浏览

ssis - 使用 SSIS 从 Hyperion 7.3 中提取数据的选项有哪些?

我们需要使用 SSIS 从一些 Hyperion 多维数据集(数据库)中获取数据。是否有任何可用的连接管理器?有人做过吗?

0 投票
5 回答
3024 浏览

sql - 如何解析存储在 MS SQL 2005 中的 varbinary 中的 excel (.xls) 文件?

问题

如何最好地解析/访问/提取作为二进制数据存储在 SQL 2005 字段中的“excel 文件”数据?

(因此所有数据最终都可以存储在其他表的其他字段中。)

背景

基本上,我们的客户需要来自其用户的大量详细数据。不幸的是,我们的客户不能要求他们的用户进行任何类型的数据库导出。所以我们的客户必须为他们的用户提供某种 UI 来输入数据。我们的客户认为所有用户都可以接受的 UI 非常出色,因为它具有相当强大的 UI。所以考虑到所有这些,我们的客户需要自动解析这些数据并将其存储在他们的数据库中。

我们试图让我们的客户相信用户只会这样做一次,然后坚持使用数据库导出!但客户不能要求其用户的数据库导出。

  • 我们的客户要求我们解析一个 excel 文件
  • 客户的用户使用 excel 作为“最佳”用户界面来输入所有需要的数据
  • 为用户提供了必须填写的空白 Excel 模板
    • 这些模板具有固定数量的唯一命名选项卡
    • 这些模板有许多必须完成的固定区域(单元格)
    • 这些模板还有一些区域,用户可以在其中插入多达数千个格式相同的行
  • 完成后,用户通过标准 html 文件上传提交 excel 文件
  • 我们的客户将此文件原始存储到他们的 SQL 数据库中

给定

  • 标准 excel (".xls") 文件(本机格式,不是逗号或制表符分隔)
  • 文件原始存储在varbinary(max)SQL 2005 字段中
  • excel 文件数据在行之间不一定是“统一的”——也就是说,我们不能假设一列都是相同的数据类型(例如,可能有行标题、列标题、空单元格、不同的“格式”, ...)

要求

  • 代码完全在 SQL 2005 中(存储过程,SSIS?)
  • 能够访问任何工作表(选项卡)上的值
  • 能够访问任何单元格中的值(无需公式数据或取消引用)
  • 单元格值不能假设在行之间是“一致的”——也就是说,我们不能只假设一列都是相同的数据类型(例如,可能有行标题、列标题、空单元格、公式、不同的“格式”,...)

喜好

  • 没有文件系统访问权限(没有写入临时 .xls 文件)
  • 以定义的格式检索值(例如,实际日期值而不是像 39876 这样的原始数字)
0 投票
7 回答
477 浏览

sql - 如何确定每个来源中的记录是否代表同一个人

我有几个包含个人数据的表格来源,如下所示:

因此,假设来自来源 1 和 2 的 ID 为 1 的记录是同一个人,我的问题是如何确定每个来源中的记录是否代表同一个人。此外,确保并非所有记录都存在于所有来源中。所有的名字,主要是用西班牙语写的。

在这种情况下,需要放宽精确匹配,因为我们假设数据源没有经过国家官方身份验证局的严格检查。此外,我们需要假设拼写错误是常见的,因为收集数据的过程的性质。更重要的是,每个来源的记录数量约为 2 或 3 百万……

我们的团队曾考虑过这样的事情:首先,强制在 ID NUMBER 和 NAMES 等选定字段中进行精确匹配,以了解问题的难度。第二,放宽匹配条件,数一数还能匹配多少条记录,但是问题来了:如何放宽匹配条件,既不会产生太大的噪音,又不会限制太多?

什么工具可以更有效地处理这个问题?例如,您是否知道某些数据库引擎中的某些特定扩展以支持这种匹配?您是否知道诸如soundex 之类的巧妙算法来处理这种近似匹配,但对于西班牙语文本?

任何帮助,将不胜感激!

谢谢。

0 投票
4 回答
581 浏览

sql - 工具:从 ODBC 到 SQL 05 的 ETL?

我只想要一个简单的工具,它可以帮助我快速编写可以安排运行的脚本/包。我的转换要求非常简单(更改列名、合并/拆分表和日期转换)。我会牺牲灵活性来提高开发速度。

有没有想到?

0 投票
3 回答
5934 浏览

sql-server - 如何以编程方式创建 SSIS 包?

我正在尝试以编程方式创建一个 SSIS 包,其中包含在同一数据库中从表 A 到表 B 的简单数据流。我正在使用此处给出的示例。该包被创建并保存到一个 dtsx 文件中,但是当我在 Visual Studio 中打开它时,我看到源表和目标表尚未被选择。

我还想在它到达目的地之前插入一个转换任务。


编辑

好吧,我已经设法选择了源表和目标表,并且任务甚至成功运行。原来我需要

(a) 对源和目标各使用一个 oleDB 连接[我不喜欢这种方式;我只想使用一个连接]

(b) 在目标SetComponentProperty("AccessMode", 3) 中将Accessmode 设置为 3,这相当于 Table 或 View - 快速加载。

某处是否有关于此的一些文档。我所能找到的只是SetComponentProperty的作用,而不是它可以采取的所有参数。例如。除了“AccessMode”,我还能放什么?第二个参数 3 或 2 或 1 代表什么?

仍在尝试映射绰号。STOCK:PipelineTask 表示 DataFlow 任务。说...复制列的绰号是什么?

0 投票
4 回答
21269 浏览

sql-server - 是否可以对 SSIS 包 dtsConfig 文件使用相对路径?

我正在尝试使我们的 SQL Server 集成服务包尽可能可移植,而阻止这一点的一件事是配置的路径始终是绝对路径,这使得测试和部署令人头疼。有什么建议可以让这更易于管理吗?

另一个问题是,当另一个开发人员从源代码​​控制中获取包时,路径是特定于开发人员机器的。

0 投票
3 回答
19490 浏览

sql-server - 如何删除 SSIS 中的 excel 行?

是否可以从 SSIS 删除 Excel 工作表中的行?

0 投票
2 回答
4201 浏览

sql-server - 如何在 SSIS 或其他工具中处理带有许多抑制列的参差不齐的正确文本文件?

不规则的右平面文件选项非常适合以 CRLF 终止的单个尾随字段,但是当任何数量的空白尾随字段被抑制并且该行以 CRLF 提前终止时,我在 SSIS 中找不到其他选择,只能阅读一些列中包含一个“剩余”列,然后使用带有 SUBSTRING 操作的派生列转换来一一提取“可选”列。

我想到的一种可能性是,在连接管理器获得它之前,是否有任何方法可以通过 SSIS 中的“填充器”组件传递线路。然后,您可以获得使用连接管理器设置传入列长度的所有好处。我总是可以创建一个外部程序(或一个完全独立的 SSIS 数据流)来传递一个文件,该文件将用空格填充每一行(并且右不规则 - 只需添加相同的最小空格数以解释所有抑制字段到每个行就足够了),但这似乎相当浪费磁盘空间,并且还需要再完全读取(和写入)文件一次。

或者,如果行过早终止,也许有一个第三方数据源组件将自动简单地为 NULL 或空白和列。

还有其他选择吗?

0 投票
5 回答
1272 浏览

etl - 对 Web 表单进行逆向工程

我有一个网站,我从中下载 2-3 MB 的原始数据,然后将其输入 ETL 流程以将其加载到我的数据集市中。不幸的是,数据提供者是美国农业部 (USDA),他们不允许通过 FTP 下载。他们要求我使用网络表单来选择我想要的元素,点击 2-3 个屏幕并最终点击下载文件。我想自动化这个下载过程。我不是网络开发人员,但不知何故,我似乎应该能够使用一些工具来准确地告诉我从最终请求到服务器的 put/get/magic 是什么。如果我有一个工具说“将这些参数传递给这个 url 并等待响应”,那么我可以在 Perl 中组合一些东西来自动化这个过程。

我意识到,如果我解构他们的所有 5 个页面并阅读 JavaScript 包含的内容并将我的愈合点按 3 次,我可以从我可以访问的内容中获取此信息。但我想要一个更快、更直接的路径,不需要我手动解析他们所有的 JS。

重述最后一个问题:是否有工具或方法可以清楚地显示从 Web 表单发送的最终请求请求是什么以及它是如何构造的?