Redshift
此页面包含Redshift的设置指南和参考信息。
前提条件
Daspire中的Redshift目的地有两种复制策略。Daspire会根据给定的配置自动选择一种方法——如果存在S3配置,Daspire将使用复制策略,反之亦然。
- INSERT:通过SQL INSERT查询复制数据。它建立在目标jdbc代码库之上,并配置为依赖亚马逊通过Mulesoft此处提供的JDBC 4.2标准驱动程序。如Redshift文档此处中所述。不推荐用于生产环境负载,因为这不能很好地扩展。
对于INSERT策略:
- 主机
- 端口
- 用户名
- 密码
- 架构
- 数据库
- 该数据库需要存在于提供的集群中。
- JDBC URL参数(可选)
- 复制: 通过先将数据上传到S3存储桶并发出复制命令来复制数据。这是Redshift最佳方式描述的推荐加载方法。需要S3存储桶和凭据。
对于复制策略:
S3存储桶名称
- 请参阅这里创建S3存储桶。
S3桶区域
- 将S3存储桶和Redshift集群放在同一区域以节省网络成本。
访问密钥ID
秘密访问密钥
- 上面密钥id对应的密钥。
零件尺寸
- 影响单个Redshift表格的大小限制。可选的。如果同步表大于100GB,请增加此值。文件被分流到S3。这决定了每个部分的大小,以MB为单位。由于S3对每个文件有一万个零件的限制,零件大小会影响表格大小。默认情况下为10MB,导致默认表限制为100GB。请注意,较大的零件尺寸会导致较大的内存需求。一个经验法则是将部件大小乘以10以获得内存要求。小心修改这个。
S3文件名模式
- 该模式允许您设置S3暂存文件的文件名格式,当前支持下一个占位符组合:{date}、{date:yyyy_MM}、{timestamp}、{timestamp:millis}、 {timestamp:micros}、{part_number}、{sync_id}、{format_extension}。请不要使用空白区域和不支持的占位符,因为它们不会被识别。
可选参数:
桶路径
- S3存储桶中用于放置暂存数据的目录。例如,如果您将其设置为
yourFavoriteSubdirectory
,我们会将暂存数据放在s3://yourBucket/yourFavoriteSubdirectory
中。如果未提供,则默认为根目录。
- S3存储桶中用于放置暂存数据的目录。例如,如果您将其设置为
清除暂存数据
- 是否在完成同步后从S3中删除暂存文件。具体来说,接口将创建名为
bucketPath/namespace/streamName/syncDate_epochMillis_randomUuid.csv
的CSV文件,其中包含三列(ab_id
、data
、emitted_at
)。通常这些文件在复制命令完成后被删除;如果您想保留它们用于其他目的,请将purge_staging_data
设置为false
。
- 是否在完成同步后从S3中删除暂存文件。具体来说,接口将创建名为
设置指南
第1步:设置Redshift
进入AWS Redshift服务
创建并激活AWS Redshift集群(如果您还没有准备好的话)
(可选)允许从Daspire连接到您的Redshift集群(如果它们存在于单独的VPC中)
(可选)创建暂存S3存储桶(用于COPY策略)。
第2步:在Daspire中设置目的地接口
进入Daspire控制面板。
在左侧导航栏中,点击目的地。在右上角,点击添加新目的地。
在目的地设置页面上,从目的地下拉列表中选择Redshift并输入此接口的名称。
填写所有必填字段以使用插入或复制策略
点击保存并测试。
支持的同步模式
Redshift目的地支持以下同步模式:
- 完全刷新同步
- 增量同步 - 追加同步
- 增量同步 - 去重历史
性能考虑
同步性能取决于要传输的数据量。集群扩展问题可以直接使用AWS Redshift控制台中的集群设置来解决。
特定目的地的特色和亮点
关于Redshift命名约定的注意事项
标准标识符
以ASCII单字节字母字符或下划线字符开头,或以两到四个字节长的UTF-8多字节字符开头。
后续字符可以是ASCII单字节字母数字字符、下划线或美元符号,或者长度为两到四个字节的UTF-8多字节字符。
长度在1到127个字节之间,不包括分隔标识符的引号。
不包含引号和空格。
分隔的标识符
分隔的标识符(也称为带引号的标识符)以双引号(")开头和结尾。如果使用分隔的标识符,则必须为对该对象的每个引用使用双引号。标识符可以包含任何标准UTF-8双引号本身以外的可打印字符。因此,您可以创建包含其他非法字符(例如空格或百分号)的列名或表名。分隔的标识符中的ASCII字母不区分大小写并折叠为小写。要使用字符串中的双引号,您必须在它前面加上另一个双引号字符。
因此,Daspire Redshift目的地将尽可能使用不带引号的标识符创建表和方案,如果名称包含特殊字符,则回退到带引号的标识符。
数据大小限制
Redshift指定最大限制为1MB(JSON记录中的任何VARCHAR字段为65535字节)以存储原始JSON记录数据。因此,当一行太大而无法容纳时,Redshift,目的地无法加载此类数据并且当前会忽略该记录。请参阅SUPER 和SUPER限制的文档。
加密
所有Redshift链接都使用SSL加密。
输出模式
Daspire将每个数据流输出到Redshift中它自己的原始表中。每个表包含三列:
_daspire_ab_id
:Daspire分配给每个处理的事件的uuid。Redshift中的列类型是VARCHAR。_daspire_emitted_at
:表示事件何时从数据源中提取的时间戳。Redshift中的列类型是TIMESTAMP WITH TIME ZONE。_daspire_data
:用事件数据表示的json blob。Redshift中的列类型是VARCHAR,但可以使用JSON函数进行解析。
数据类型映射
Daspire类型 | Redshift类型 |
---|---|
boolean | boolean |
int | integer |
float | number |
varchar | string |
date/varchar | date |
time/varchar | time |
timestamptz/varchar | timestamp_with_timezone |
varchar | array |
varchar | object |