今天,在研究 ETL 和Kettle 之类的数据仓库解决方案时,我遇到了一个新概念(对我而言),称为数据仓库自动化工具。
我对这些工具的一个反应是:哇,任何购买这些工具的人都在进行巨大的投资。同时,似乎许多数据仓库项目都失败了,即使它们需要开发人员花费大量时间来实施。
所以,如果有人在那里确实有在真实世界中的项目数据仓库的自动化工具的经验,你能回答这些问题吗?
问题陈述: 我们的支持工程师需要从客户那里获取数据库备份。目前,我们的数据库包含在一个 Primary/.mdf 文件组/文件中。这些数据库多年来一直在收集历史数据,并且越来越大。我们的工程师需要几天时间才能将备份复制到我们的办公室。
似乎没有任何规定/想法来管理数据库的增长。
最“有价值”的数据是我们系统的“配置”。它包含在大约 50 个表中,我们正在考虑将这些表移至与历史数据(将放置在数据文件组中)分开的新配置文件组,以尝试为部分或文件备份设置阶段。
但我不确定我需要哪种备份/恢复策略来完成这个 - 部分备份或文件备份?
出于研发目的,我有一个名为FilegroupDemo使用SIMPLE恢复模型的数据库。FilegroupDemo包含 3 个文件组:
配置文件组中的数据不会经常更改,并且可能会被标记为只读(如果有帮助),而数据文件组中的数据每分钟更改一次。
我希望能够灵活地仅备份/恢复主文件组和配置文件组/文件。
在SQL Server Partial Backups的 BOL 文章中,它指出:
部分备份类似于完整数据库备份,但部分备份不包含所有文件组。相反,对于读写数据库,部分备份包含主文件组、每个读写文件组以及一个或多个只读文件(可选)中的数据。
这种读取方式让我认为部分备份旨在省略只读文件组,最有可能用于不会更改并标记为只读的大量数据。这些不需要每次都备份。
1. 我说存在部分备份是为了备份所有文件组(除了标记为只读的文件组)是否正确?换句话说,如果我不使用只读文件组,那么使用部分备份就没有意义了——对吗?而且我认为我不能使用部分备份来备份只读文件组?
因此,我不认为部分备份是我所需要的。我相当天真地尝试了文件备份/恢复。我将数据库切换到FULL恢复模式并运行:
BACKUP DATABASE FilegroupDemo FILEGROUP = N'PRIMARY'
TO DISK = N'C:\Backups\FilegroupDemo_FG_Primary.bak'
WITH INIT
GO
BACKUP DATABASE FilegroupDemo FILEGROUP = N'Configuration'
TO DISK = N'C:\Backups\FilegroupDemo_FG_Configuration.bak'
WITH INIT
GO
BACKUP DATABASE FilegroupDemo FILEGROUP …Run Code Online (Sandbox Code Playgroud) 我正在处理一个相当庞大的 ETL 处理,它不断向我抛出ORA-12549错误。
一直在寻找数据库中的问题,至今一无所获。DBA 说数据库“很好” - 有资源,没有达到要打开或处理的最大文件数,并且在所有表空间上都有空间。
我开始怀疑这个错误是否可能是由客户端抛出的。但是它是一个使用JDBC连接的Java应用程序,堆大小为16GB,根据GC日志也几乎没有填满。
这个过程本身相当简单:在 Oracle 中进行大量选择,对数据应用一些逻辑,然后定期提交到另一个表。我使用了从 500 万行到仅仅 10 万行的提交(分为 100 批 1k 行)。错误总是在同一点上。
有人能给我一些关于正在发生的事情的见解吗?我应该去哪里寻找线索?
客户端,ulimit 是 1024(在 Oracle 的服务器上是 65k),这有关系吗?
我最近进入了 SSIS,但无法在网络上的任何地方找到我想要实现的目标。
我试图将一些行作为输入,然后用其他内容替换一个特定列的值,然后返回带有修改过的列的行作为输出。
问题是我不知道要使用哪个任务。
我受到 SQL Server 2008 的限制。
我该如何开始?
我想知道多播实际上是如何工作的。所以这是我的设置。我有一个大约 10 万行的源平面文件 (csv),可能大约有 250-300 列,我正在将该文件多播到 7 个一对一表中。这些表中只有主键列是重复的。这个设置似乎工作正常,但现在看来我们可能遇到了内存问题。我想知道将数据多播到 7 个目的地是否太多。关于内存使用的任何想法?我真的不在乎它的运行速度有多快,只是想减少内存使用量。
我想到的一种替代方法是可能只是为同一个文件创建 7 个不同的连接管理器,然后按顺序运行所有内容。那会更好吗?谢谢!
我知道这些字母表示提取、转换和加载。
但是,当我一开始使用它时,我认为在转换阶段我可以对从数据源中提取的数据进行大量不同的连接,后来我意识到在不同的 ETL 上进行连接并不是那么方便.
谢谢
我正在 SQL Server 表上执行 ETL 逻辑。我要将数据从一张表同步到另一张表。对于需要基于源表添加到目标表的所有记录,我正在对目标表中的这些行进行插入。架构将其中一列定义为标识列。因此 SQL Server 会自动增加插入的新行的 id。因为我要移动现有的 id,所以我需要删除标识,插入这些行,然后重新应用标识,然后重置种子以使其与源表匹配。这如何以编程方式完成?
加载 CSV 文件后,有各种单词错误地“写入”到数据库中。
一些例子:
Diã¡ria 应该 DiáriaCrã©dito 应该 CréditoLigaã§ãµes 应该 LigaçõesUsuã¡rio 应该 UsuárioNãºmeros 应该 Números有没有办法将符号转换为正确的字符?
我已经做了多次测试不同collations,并functions可能在互联网上搜索,但没有成功。
我们有两个独立的 SQL Server。在一台服务器上,我们有一个数据仓库 (DWH),在另一台服务器上,我们有销售信息数据库。
现在在 DWH 服务器上有一个 ETL 作业从销售服务器收集信息。该作业每天午夜后运行。DWH 通过链接服务器从销售数据库中收集信息。
现在,大多数情况下 ETL 作业运行没有任何问题。但有时会因为查询超时而失败。我们发现,有一个特定的模式:故障每 11 天发生一次。所以在第 11 天,ETL 作业无法收集信息。
出现以下错误:
链接服务器“我的链接服务器”的 SQLNCLI11 返回消息“查询超时已过期”。
注意:作业通常在启动后 10 分钟失败。
我们已经搜索了所有内容,但无法找出此问题的原因。我们也知道每次的数据量几乎一样。也没有任何运行所有 11 天之类的预定作业。
链接服务器上的远程查询超时设置为 0。
我们的下一步将是关闭销售服务器上的防病毒程序,以检查这是否会导致问题。
有没有人有任何线索或想法,我可以在哪里进一步搜索以找到问题?
我的任务是通过 t-sql 将 SQL Server 中保存的图像(作为 varbinary)提取到平面文件中。我已经有十多年没有做过 ETL 工作了,除了使用 sp_OACreate、sp_OAMethod 等之外,我不记得通过 t-sql 执行此操作的任何其他方法。
是否有一些新方法可以解决这个问题?更“可靠”并且不需要打开 OLE 自动化程序并做所有这些疯狂的事情的东西?
这将是一个持续的过程。不是一次性运行。