【发布时间】:2013-05-05 07:47:55
【问题描述】:
我正在编写一个概念验证应用程序,旨在以每秒大约 1000 条消息的速率获取实时点击流数据并将其写入 Amazon Redshift。
我正在努力获得与其他人声称的性能类似的东西(例如,here)。
我正在运行一个具有 2 个 dw.hs1.xlarge 节点(+ 领导者)的集群,执行负载的机器是一个 EC2 m1.xlarge 实例,它与运行 64 位 Ubuntu 12.04 的 Redshift 集群位于同一 VPC 上.1.
我正在使用 Java 1.7(来自 Ubuntu 存储库的 openjdk-7-jdk)和 Postgresql 9.2-1002 驱动程序(主要是因为它是 Maven Central 中唯一让我的构建更容易的驱动程序!)。
我已经尝试了here 显示的所有技术,除了最后一个。
我不能使用COPY FROM,因为我们想“实时”加载数据,所以通过 S3 或 DynamoDB 暂存它并不是一个真正的选择,而且 Redshift 出于某种原因不支持COPY FROM stdin。
这是我的日志的摘录,显示单个行以大约 15/秒的速度插入:
2013-05-10 15:05:06,937 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Beginning batch of 170
2013-05-10 15:05:18,707 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Done
2013-05-10 15:05:18,708 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Beginning batch of 712
2013-05-10 15:06:03,078 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Done
2013-05-10 15:06:03,078 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Beginning batch of 167
2013-05-10 15:06:14,381 [pool-1-thread-2] INFO uk.co...redshift.DatabaseWriter - Done
我做错了什么?我还可以采取哪些其他方法?
【问题讨论】:
标签: jdbc amazon-redshift