Questions tagged «etl»

“提取,转换和加载”:通常在数据仓库系统中进行数据加载处理。

3
在9.1下是否仍建议使用常规VACUUM ANALYZE?
我在Ubuntu上使用PostgreSQL 9.1。是否VACUUM ANALYZE仍建议使用预定时间,还是自动真空足以满足所有需求? 如果答案是“取决于”,则: 我的数据库比较大(压缩的转储大小为30 GiB,数据目录为200 GiB) 我将ETL输入数据库,每周导入近300万行 更改最频繁的表都从主表继承,主表中没有数据(数据按周划分) 我创建每小时汇总,并从那里创建每日,每周和每月报告 我要问的是因为计划安排VACUUM ANALYZE正在影响我的报告。它运行了5个多小时,本周我不得不杀死它两次,因为它影响了常规数据库的导入。check_postgres不会报告数据库有任何重大膨胀,所以这并不是真正的问题。 从文档中,autovacuum还应注意事务ID的回绕。问题是:我还需要一个VACUUM ANALYZE吗?
38 postgresql  etl  vacuum 

4
使用SQL CLR标量函数模拟HASHBYTES的可伸缩方法是什么?
作为ETL流程的一部分,我们将暂存中的行与报表数据库进行比较,以找出自从上次加载数据以来是否实际更改了任何列。 比较是基于表的唯一键和所有其他列的某种哈希值。我们目前使用HASHBYTES该SHA2_256算法,并且发现如果许多并发工作线程都在调用,则该算法无法在大型服务器上扩展HASHBYTES。 在96台核心服务器上进行测试时,以每秒哈希数衡量的吞吐量不会增加超过16个并发线程。我通过将并发MAXDOP 8查询数从1 更改为12进行测试。测试MAXDOP 1显示了相同的可伸缩性瓶颈。 作为一种解决方法,我想尝试一个SQL CLR解决方案。这是我尝试陈述要求的尝试: 该功能必须能够参与并行查询 函数必须是确定性的 该函数必须接受NVARCHAR或VARBINARY字符串的输入(所有相关列都串联在一起) 字符串的典型输入大小为100-20000个字符。20000不是最大值 哈希冲突的机会应大致等于或优于MD5算法。CHECKSUM对我们不起作用,因为有太多的碰撞。 该功能必须在大型服务器上很好地扩展(随着线程数量的增加,每个线程的吞吐量不应显着降低) 对于Application Reasons™,假定我无法保存报表的哈希值。这是一个不支持触发器或计算列的CCI(还有其他我不想讨论的问题)。 HASHBYTES使用SQL CLR函数进行仿真的可扩展方式是什么?我的目标可以表示为在大型服务器上每秒获得尽可能多的哈希,因此性能也很重要。我对CLR感到很糟糕,所以我不知道该如何完成。如果它激励任何人回答,我计划在可能的情况下尽快为这个问题添加赏金。下面是一个示例查询,它非常粗略地说明了用例: DROP TABLE IF EXISTS #CHANGED_IDS; SELECT stg.ID INTO #CHANGED_IDS FROM ( SELECT ID, CAST( HASHBYTES ('SHA2_256', CAST(FK1 AS NVARCHAR(19)) + CAST(FK2 AS NVARCHAR(19)) + CAST(FK3 AS NVARCHAR(19)) + CAST(FK4 AS NVARCHAR(19)) + …

5
如何运行带有许多插入的大型脚本而又不会耗尽内存?
题: 我有一个从select语句中插入约4.5万个脚本的脚本。当我尝试运行它时,收到一条错误消息,指出我的内存不足。如何使该脚本运行? 内容: 添加了一些新的数据字段,以使一个应用程序可以与客户端使用的另一个应用程序完美兼容。 从客户端获取了一个包含所有数据的电子表格,这些数据将当前数据项映射到这些新字段的值。 将电子表格转换为插入语句。 如果我仅运行某些语句,则它可以工作,但整个脚本却不能。 不,没有错别字。 如果有其他方法,我应该加载此数据,请随时批评我并告知我。

7
有任何开源/免费ETL吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 4年前关闭。 甚至在Pentaho购买并将其命名之前,我都在使用Pentaho Data Integration。我有最后一个免费版本。 我最近访问了他们的网站,看看他们是否发布了另一个版本,只是发现我最喜欢的开源etl不再是很大的开放,而且还不是很免费。 你们中有人知道价格合理且易于使用的ETL工具中的替代方法吗?
26 etl 


4
相互验证两个表的快速方法
我们正在执行ETL流程。说完所有的话,有一堆表应该是相同的。验证那些表(在两个不同服务器上)实际上是否相同的最快方法是什么。我在说模式和数据。 我可以像在单个文件或文件组上一样对表进行哈希运算吗?可以相互比较。我们有Red-Gate数据比较,但是由于有问题的表包含数百万行,因此我希望每个表都具有更高的性能。 一种吸引我的方法是对联合声明的创造性使用。但是,如果可能的话,我想进一步探讨一下哈希概念。 发布答复更新 对于任何未来的参观者……这就是我最终采取的确切方法。效果很好,我们正在每个数据库中的每个表上执行此操作。感谢下面的回答为我指出了正确的方向。 CREATE PROCEDURE [dbo].[usp_DatabaseValidation] @TableName varchar(50) AS BEGIN SET NOCOUNT ON; -- parameter = if no table name was passed do them all, otherwise just check the one -- create a temp table that lists all tables in target database CREATE TABLE #ChkSumTargetTables ([fullname] varchar(250), [name] …

2
ETL:从200个表中提取-SSIS数据流或自定义T-SQL?
根据我的分析,我们数据仓库的完整维模型需要从200多个源表中提取。这些表中的某些将作为增量负载的一部分被提取,而另一些则将作为全负载。 需要注意的是,我们有大约225个具有相同模式的源数据库。 从我所看到的,在具有OLE DB源和OLE DB目标的SSIS中构建简单的数据流要求在设计时确定列和数据类型。这意味着仅用于提取,我最终将获得200多个数据流。 从可维护性的角度来看,这是我遇到的一个大问题。如果需要对提取代码进行某种彻底的更改,则必须修改200个不同的数据流。 另一个选择是,我编写了一个小脚本,该脚本读取要从一组元数据表中提取的源数据库,表名和列。该代码在多个循环中运行,并使用动态SQL通过链接服务器和OPENQUERY从源表中提取。 根据我的测试,这仍然不及将SSIS数据流与OLEDB源和目标一起使用的速度。所以我想知道我有什么样的选择。到目前为止的想法包括: 使用EZAPI以编程方式生成具有简单数据流的SSIS包。要提取的表和列将来自前面提到的相同的元数据表。 购买第三方软件(动态数据流组件) 解决此问题的最佳方法是什么?当涉及到.NET编程时,我是一个初学者,因此仅考虑基础知识所需的时间也是一个问题。

2
PostgreSQL,用于大量交易和数据仓库
对PostgreSQL来说是个新手,我以前从未使用它进行过大规模部署。但是,我在企业解决方案方面有丰富的经验,我想尝试应用一些我在PostgreSQL中学到的知识。 我有一个可以处理大量数据和流量的站点。该基础设施将使用EC2实例和EBS卷在亚马逊(AWS)上构建。 该设计应具有两个数据库,一个主要的事务数据库和一个处理分析和报告的数据仓库。 主要交易数据库 将用于实时网站,该网站建立在多个节点上以扩大并发用户。主要是因为我们要求这种情况下的数据库在读取操作中要非常快,我们希望数据大于100GB,并且每年以30%的速度增长。此时,我们计划使用两台EC2服务器(并在以后根据需要添加更多服务器)。 我的问题是,上述要求的推荐设置是什么?另外,有没有一种方法可以管理表和卷分区?有使用AWS设置的建议吗? 数据仓库数据库 将主要用于在时间维度上捕获来自主事务数据库的所有数据。因此,即使从主数据库中删除的记录也将被捕获在DWH中。因此,数据将非常庞大,增长将更大。如果需要,我们还将使用几个EC2实例或更多实例。 在这种情况下,推荐的设置是什么?由于持续写入(ETL),因此需要快速写入操作。我们可以在PostgreSQL中构建OLAP多维数据集吗?如果是,有没有人尝试过? 连接数据库 Web服务器将连接到主数据库以进行查询和写入。我们目前正在使用django开发应用程序,该应用程序使用本机库进行连接。是否建议使用相同的基本方法?还是应该配置pgpool? 数据仓库(ETL) 建立ETL流程以从主数据库读取并加载到数据仓库的推荐方法是什么?有什么工具吗?遵循的方法?PostgreSQL是否在构建ETL流程中提供了任何有用的功能/工具?

4
SQL Server中是否有用于编程ETL的标准语言/界面?
我目前正在为我们的数据仓库创建ETL。我们正在使用SSIS 2008,但是我们遇到了问题,其中最大的就是难以重用组件。每个表都有单独的程序包,每个程序包都将父程序包中的多个变量作为输入。当我们对这些输入变量进行更改时,我们需要进入每个程序包(现在有15个左右,但是这个数字将大大增加)并修改程序包以应对这些更改。还有其他问题,包括无法为我们的提取运行任意SQL,不良的日志记录功能等。 如果有一种方法可以开发代码中的ETL,实现代码重用,通用库,更好的单元测试等,那么整个过程将更加健壮。是否存在用于SQL Server的事实上的标准ETL语言/ API?我希望尽可能避免使用GUI工具。 编辑:我应该提到我的背景。我不是DBA,也没有正式(或非正式)的DBA培训,随着我的发展,我基本上已经了解了这些内容,因此,我很可能尝试使用SSIS进行不合适的工作或尝试使用此ETL。从错误的角度投射。另外,我目前在州政府工作,所以任何需要购买新软件包的解决方案都不在可能范围之内。 这是我们的任务之一。我们正在使用一个SSIS包来加载仓库中的每个表。每个Fact程序包和Dimension程序包通常都相同,只是它们的区别在于 从源数据库中提取 数据流中的操作 合并到目标表 我想做的(我发现在SSIS中很难做) 从文本文件加载提取查询。当开发人员编写和测试其提取查询时,我不必在SSIS运行它之前以任何方式操纵他们的查询,也不必将查询剪切并粘贴到DB Source对象中。 分别测试每个组件。我应该能够独立地测试单个表的完整ETL过程,而与其他表负载无关。 在一处修改共享逻辑,而不必编辑每个单独的程序包。每个包都以相同的方式将数据加载到审核表中,如果我想更改已加载已审核的数据,则不需要编辑所有15个包(随着时间的推移,这个数量会变得更大)。 如果适当地使用共享代码以编程方式完成,则整个过程感觉将更容易实现,并且更加健壮。
10 sql-server  etl 

6
Redshift中的尺寸建模和ETL
我一直在研究Amazon的Redshift数据库,以作为将来替换我们的数据仓库的可能。我的经验一直是使用维度建模和Ralph Kimball的方法,因此看到Redshift不支持自动递增列的串行数据类型等功能有点奇怪。 但是,AWS Big Data博客最近有一篇博客文章,介绍如何针对星型架构优化Redshift:https : //blogs.aws.amazon.com/bigdata/post/Tx1WZP38ERPGK5K/Optimizing-for-Star-Schemas和交错排序在Amazon Redshift上 我的问题是在Redshift中加载星型架构的最佳实践是什么?我在Redshift的任何文档中都找不到答案。 我倾向于将文件从S3导入到临时表中,然后在插入目标表之前使用SQL进行诸如查找和生成代理键之类的转换。 这是别人目前在做什么吗?有没有值得花这笔钱的ETL工具来简化这一过程?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.