问题标签 [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.
java - 什么是理解数据类型并且可以用 Java 实现的脚本语言?
我正在寻找一种满足以下条件的脚本语言:
- 有据可查
- 用Java实现
- 了解数据类型(可以处理长整数、字符串等)
- 完全可扩展
有什么建议么?目前,我正在使用 Javascript,但它设置数字的双精度数对于我正在做的数据工作来说还不够大。
谢谢!
asp.net - Excel 上传到数据库表
我正在寻找允许我们的用户上传 XLS 电子表格的最佳解决方案,以便它们可用于填充我们的数据仓库 (DW) 中的表。
我们的用户是重度业务对象 (BO) 用户,BO 允许您导出到 XLS。当他们在电子表格中有数据需要加载到 DW 时,他们需要一个过程将 XLS 中的数据上传到 DW 的数据库中。结果,当我认为我们真正需要的是程序化自动提要时,我们最终得到了许多这样的“接口”。在我的直觉中,使用 Excel 作为系统间馈送的数据源对我来说似乎是个坏主意。
问题#1:我想看看你是否同意以及为什么或为什么不同意。
好的,没有逆流而上,所以我现在认为 XLS 上传会为我们保留。现在我需要找到最好的解决方案。首先,我将解释我们现在做什么,然后解释我不喜欢它的地方:
通过网页,我们提供带有一组已定义列的空 XLS 文件(无行)。每个文件旨在用于更新不同的目标目标表。在每个电子表格中都有一个“上传”按钮。按下上传按钮会导致电子表格中的宏将文件的内容序列化为 CSV 并将数据通过 FTP 传输到服务器文件夹。调度程序会定期触发 Informatica ETL 作业,该作业使用 CSV 文件作为输入并将数据加载到自定义 XLS 特定临时表中,然后,如果记录通过编辑,则加载到相应的目标表中。遇到的任何错误都会记录到错误表中。对于上传的每个 XLS 文件,数据最终会出现在文件特定的单独暂存和错误表中。
关于我们的流程,我不喜欢的一些事情是:
1) XLS 中的宏代码过于暴露,例如包含密码,可以被篡改,并且存在确保用户使用最新的 XLS 模板的问题。2)业务规则编辑被放置在ETL程序中,它们可能应该在哪里,但是因为我们想尽快捕获错误,即在电子表格中,编辑也被添加到宏代码中。这会导致业务编辑重复。我希望将这些规则集中在一个地方并集中控制。恕我直言,我认为在 XLS 中放置任何宏代码都会引入维护问题,甚至调用存储过程(其中一些我们有)或调用 Web 服务(我们还没有尝试从 XLS 宏调用 .NET Web 服务。) 3) 每个 XLS 文件上传模板都有自己的流程,其中包含一组不同的暂存和错误表,以及用于报告遇到的错误的自定义屏幕。似乎我们需要一个更通用的可重用解决方案。
除了经常将数据从 BO 导出到 XLS 之外,用户还喜欢 Excel,因为它比通过 Web 界面编辑单个记录更容易编辑大量记录并且不那么笨重。
这是我想的大方向:
首先,我希望用户能够通过编辑轻松编辑 Excel,但无需在电子表格中包含嵌入的宏。我尝试了与 Excel 兼容的 Farpoint 网格...
http://www.fpoint.com/netproducts/spreadweb/tour/excel.aspx
...而且我发现让用户能够打开驻留在其 PC 上的 XLS 文件并让它在浏览器中打开并能够轻松访问从服务器端读取的数据非常容易。 NET 网络代码。Excel 没有在他们的浏览器中本地运行,但 Excel 的功能被复制了,大概是通过大量客户端脚本,我希望复制自己会很痛苦。您甚至可以从本地电子表格剪切并粘贴到网络电子表格中。这听起来不错,最大的问题是成本。我们公司濒临死亡,不允许我们购买任何新软件。
接下来,我想确定所有电子表格上传处理中的通用组件,并提出通用处理代码。例如,我想象一个表格,它定义了我们的每个电子表格以及每个表格的格式,包括列名和数据类型定义,可能是根据它们的目标列而不是硬编码。基于这个表模板定义,我可以从这个表定义中生成 XLS 模板供下载。我还可以执行简单的通用编辑以确保输入的数据与表定义匹配。并且可以使用一个通用网页来呈现数据并允许报告数据类型不匹配错误并允许用户更正它们。我还将定义一个通用表,用于将数据存储在“暂存”表中,使用具有两列的表,提交编号、行数、名称和值,也许。目标不再是“定制一切”。
接下来我需要决定把业务规则放在哪里。我部门的管理人员坚信所有数据加载都应由 Informatica ETL 批处理完成,因此规则/编辑属于“Informatica 中”。我对 Informatica 工具的经验为零,我更像是一个 .NET 人。因此,我不确定这些规则是如何实现的,但我怀疑它们是不可重用的,因为它们可以被 .NET 网页用来验证特定记录。您会看到,在某些情况下,当用户不执行批量上传时,他们确实能够编辑特定记录,我希望将 ETL 批量插入过程应用的相同编辑应用于单个更新尝试通过网页记录单个记录。如果解决方案可以编写单个 Web 服务或存储过程,可以从网页调用来更新单个记录,或者在批量上传中为每条记录调用数千次?后者听起来效率低下。
您对以上任何内容的想法将非常受欢迎。
asp.net - 跨 Informatica ETL 和 ASP.NET CRUD 页面重用业务逻辑的最佳方式是什么?
我不知道关于 Informatica 的第一件事,但我正在寻找解决重复业务逻辑的方法,用于在表中插入和更新记录。问题在于以一种有效的方式进行。
1) 我们的网页一次插入、更新和删除一条记录。
2) 我们有 Informatica ETL 加载程序,从暂存(临时)表中获取记录并加载它们。这个过程对我来说是一个黑匣子,但我知道 Informatica 具有内置的效率,例如读取内存中相当大的表等,因此可以快速验证许多记录。
我知道,如果将业务编辑放在 Web 服务中,那么执行 CRUD 操作的网页以及 Informatica 加载过程都可以重用此 Web 服务,但是您如何有效地做到这一点?一次将一条记录传递给 Web 服务会降低 ETL 效率。传递数以千计的记录也是如此。
我觉得我在黑暗中,因为我不知道 Informatica 是如何工作的。
有人有什么建议吗?
.net - .Net 事件记录
我试图让新的 System.Diagnostics.Eventing 事件日志记录在一个简单的 .Net 应用程序中工作,然后再将其集成到我的应用程序中。
在这个页面上工作,我创建了一个清单,构建了一个触发事件的简单应用程序,并注册了提供程序以在事件查看器中查看它。我在事件查看器或示例应用程序中没有收到任何错误(提供程序 IsEnabled 和 WriteEvent 返回 true),但这些事件从未出现。
有什么我想念的吗?或者一些我可以检查的可能原因?
sql - 将数据从 SAS 加载到 Teradata - 什么时候准备好?
将表从 SAS 加载到 Teradata 时,SAS 加载数据(通常使用 FASTLOAD 工具),然后继续执行脚本。但是,我经常遇到严重错误,因为 SAS 说数据已加载,但 Teradata 仍在表中组装数据。
所以数据在数据库中,但还没有准备好使用。我还没有找到一种方法来知道数据是否已准备好与其他表一起处理。我已经成功地使用了 sleep 命令,但这是任意且不可靠的(因为谁知道需要多长时间)。
你会如何解决这个问题?
ssis - 在带有 SSIS 的 SQL Server CDC 中,应该为窗口(LSN 或日期)存储哪些数据?
我在使用源事务表中的标识列或日期时间列从事务系统加载数据仓库时实现了增量检测。当下次需要提取数据时,将上次提取的最大日期时间值用于提取查询的过滤器中,以识别新的或更改的记录。这已经足够好了,除非在同一毫秒内有多个事务。
但是现在我们有了 SQL Server 2008 的变更数据捕获 (CDC),它提供了一个名为 LSN(日志序列号)的新东西,它是长度为 10 的二进制文件。现在我很困惑。应存储哪些数据以用于窗口化,LSN 或日期时间。当然 LSN 消除了在大型事务表中存储额外日期时间值的需要,但这有什么缺点吗?我应该使用哪一个?我觉得,将 LSN 映射到日期时间然后存储日期时间不是一种可靠的方法。你有什么意见?
PS:致非商业智能专业人士,对不起。
asp.net - 整数零,上传到 SQL Server 时将忽略“0”
我有一个页面,允许用户上传 excel 文件并将 excel 文件中的数据插入 SQL Server。现在我有一个小问题,在 excel 文件中有一个包含值的列,例如“001”、“029”、“236”。插入到 SQL Server 时,SQL 中会忽略前面的零,所以数据会变成“1”、“29”、“239”。SQL 中列的数据类型是 varchar(10)。如何解决这个问题?
mysql - 记录 MySQL DELETE 语句
我们有一个使用 Informatica 的 MySQL->Oracle ETL,它适用于除DELETE
. 不幸的是,这DELETE
使得记录消失了,以至于 Informatica 再也看不到它以在 Oracle 中删除/过期它。
人们是如何记录 MySQLDELETE
语句的?
这些表是 InnoDB(符合 ACID),所有记录上都有唯一的主键 ( auto_increment
)。我们在 Windows 上使用开源 MySQL。
出于性能原因,我们不希望使用通用查询日志。我们还希望保留现有的 MySQL 二进制文件,而不是重新编译我们自己的特殊DELETE
语句。
sql - How to export text data from a SQL Server table?
I am trying to use the MS SQL Server 2005 Import/Export tool to export a table so I can import it into another database for archival. One of the columns is text so if I export as comma-delimited, when I try to import it into the archive table, it doesn't work correctly for rows with commas in that field. What options should I choose to ensure my import will work correctly?
vba - 使用 Excel 提取数据
我每月收到 100 多个 Excel 电子表格,我从中选取固定范围并粘贴到其他电子表格中以制作报告。
我正在尝试编写一个 VBA 脚本来迭代我的 Excel 文件并将范围复制到一个电子表格中,但我无法做到这一点。
是否有捷径可寻?