我正在尝试找出体面但简单的工具,我可以在AWS EC2中托管自己,这将允许我从SQL Server 2005中提取数据并推送到Amazon Redshift。 我基本上在SQL Server中有一个视图,我正在做SELECT *,我需要把所有这些数据放到Redshift中。最大的问题是有很多数据,这需要是可配置的,所以我可以排队,作为一个高度/连续的工作运行等。
有什么建议吗?
答案 0 :(得分:4)
alexeypro,
将表转储到文件,然后您需要解决两个基本挑战:
Amazon S3将帮助您:
S3支持从SQL服务器位置快速将文件上传到Amazon。见great article。它是从2011年开始的,但几个月后我做了一些测试,结果非常相似。我正在使用千兆字节的数据进行测试,并且16个上传器线程都可以,因为我不在骨干网上。要记住的关键是压缩和并行上传是你的朋友,以减少上传时间。
一旦数据在S3上,Redshift支持通过COPY SQL命令从S3上的文件到表的高性能并行加载。要获得最快的加载性能,请根据表分发键对数据进行预分区,并对其进行预排序以避免昂贵的真空吸尘器。所有这些都在亚马逊的best practices中有详细记录。我不得不说这些家伙知道如何让事情变得整洁干净。简单,所以只需按照步骤操作即可。
如果您是编码员,您可以使用您想要的任何shell /语言的脚本远程协调整个过程。您需要工具/库来并行HTTP上传到S3和命令行访问Redshift(psql)以启动COPY命令。
另一个选择是Java,有用于S3上传和JDBC访问Redshift的库。
正如其他海报所示,您也可以使用SSIS(或基本上任何其他ETL工具)。我正在使用CloverETL进行测试。负责自动化流程以及分割/预分配文件以进行加载。
答案 1 :(得分:2)
现在,Microsoft发布了SSIS Powerpack,因此您可以本机化。
SSIS Amazon Redshift数据传输任务
Very fast bulk copy from on-premises data to Amazon Redshift in few clicks
Load data to Amazon Redshift from traditional DB engines like SQL Server, Oracle, MySQL, DB2
Load data to Amazon Redshift from Flat Files
Automatic file archiving support
Automatic file compression support to reduce bandwidth and cost
Rich error handling and logging support to troubleshoot Redshift Datawarehouse loading issues
Support for SQL Server 2005, 2008, 2012, 2014 (32 bit and 64 bit)
为什么选择SSIS PowerPack?
High performance suite of Custom SSIS tasks, transforms and adapters
答案 2 :(得分:0)
使用现有的ETL工具,避免在亚马逊(S3 / Dynamo)中暂存数据的备用选项是使用商业DataDirect Amazon Redshift驱动程序,该驱动程序支持线上的高性能负载,而无需额外依赖于分阶段数据。
https://blogs.datadirect.com/2014/10/recap-amazon-redshift-salesforce-data-integration-oow14.html
答案 3 :(得分:0)
为了将数据导入Amazon Redshift,我制作了DataDuck http://dataducketl.com/
它就像Ruby on Rails,但用于构建ETL。
为了让您了解设置的简便性,以下是将数据导入Redshift的方法。
gem 'dataduck'
添加到您的Gemfile。bundle install
datatduck quickstart
并按照说明dataduck etl all
,将所有表格转移到Amazon Redshift 答案 4 :(得分:0)
为什么不用Python + boto + psycopg2脚本? 它将在EC2 Windows或Linux实例上运行。 如果是OS Windows,你可以:
sqlcmd.exe
)