我已经build立了一个Firehose,并select了一些看起来会导致stream式数据以Redshift结尾的选项。 我在Redshift有一个Firehose和一个目标表。 数据在中间S3存储桶中正确显示,但未进行Redshift。
我已经允许Firehose地区的CIDR通过Redshift安全组访问集群[1]。 我给了Firehose Redshift集群的凭据,并且已经testing了证书。 该群集可公开访问。
STL_LOAD_ERRORS表是空的,这是我期望看到的任何复制语句尝试和失败产生的错误。 CloudWatch中也没有DeliveryToRedshift事件。 这使我相信,甚至没有尝试使它红移。
我正在使用Redshift COPY选项来指定副本的jsonpath文件。 我目前有: json "s3://app-event-data/_jsonpaths/_bigtable.jsonpath.json" 。 该文件存在于该位置的s3中,看起来像jsonpath文件[3]。 我也尝试添加凭据到该框,但我不这是必要的。
我启用了Redshift的日志loggingfunction,告诉我Firehose有成功的身份validation。 然后,我创build了一个新的参数组,并启用了用户活动日志logging并重新启动了群集。 现在正在等待下一个日志批处理。
为什么selectServerFault? 提问Amazon AWS的最佳StackExchange站点
我会标记这个问题:amazon-kinesis amazon-firehose amazon-redshift
以下是我最初configuration错误的所有内容,并最终调整为让Firehose正确地将数据复制到Redshift中:
起初这有点令人困惑,因为桶控制台中的区域select器显示“全局”。
单引号只在复制选项。
通过从Redshift安全选项卡授权正确的CIDR / IP,授予Fireshose访问您的Redshift群集的权限。 您可以在这里find您创buildFirehose的区域的正确CIDR / IP。 您不需要创build新的群集安全组来执行此操作。 您可以将其添加到默认的一个。 如果您添加一个新的安全组,那么您需要从仪表板重新configuration您的集群以使用新的安全组,它不能有2个。
Redshift COPY不接受UTC以外时区的时间戳。 如果您使用RFC3339等格式,则需要首先将UTC时间放在UTC中,并在复制选项中指定TIMEFORMAT 'auto' 。
为了知道事情不能正常工作时发生了什么,您需要通过以下方式启用Redshift中的用户活动日志logging :
true
Enable user activity logging解锁