Google支持BigQuery中的分区表。分区您的表可以更轻松地管理数据并提高查询性能。分区可以降低写入和查询BigQuery仓库的成本。有关分区表的详细信息,请参阅
BigQuery的分区表文件
。
您可以在BigQuery中使用三种类型的表分区:
按输入时间划分的表
:根据数据的摄取(负载)日期或抵达日期进行划分表
按日期/时间戳/ datetime分区的表
:基于时间戳或日期或DateTime列进行分区的表
按整数范围划分的表
:基于整数列分区的表
Fivetran支持摄入时间分区表、列分区表和整数范围分区表。
注意:FiveTran仅支持基于每日(日)粒度的时间分区。我们不支持每小时,每月或年粒度。
如果您的分区密钥不是基于源的主键,我们执行全表扫描以避免在同一表中的不同分区中写入重复。如果您的分区密钥基于您的源代码键,我们会自动优化我们将数据写入BigQuery。
创建摄取时分区表
链接
要创建按输入时间划分的表,请执行以下操作:
去
GCP控制台的BigQuery web UI
。
在导航栏中,选择您的项目。
找到Fivetran将使用的数据集作为目标。如果您没有数据集,
创建一个新数据集
。
注意:创建将使用此数据集的连接器时,必须将目标架构(也将其成为连接器名称)命名,与数据集相同。
授予
bigquery.dataowner.
将此数据集访问到服务帐户,以便它可以创建、删除和更新数据集中的表。有关详细说明,请参见
BigQuery关于控制访问数据集的访问的文档
。
在详细信息面板中,选择
+创建表
。
在里面
创建表
窗户:
在
源
部分,保留默认值。
在
目的地
部分,保留默认值
项目名称
那
数据集名称
, 和
表类型
。
在
架构
部分,保留默认值。
在里面
表名称
字段,在Fivetran的ERD中为连接器输入与相应表相同的名称。
注意:如果连接器没有ERD,则必须在源中确定表名,并使用该名称为BIGQuery目标表。
在
分区和群集设置
部分,选择
摄入时间分区
。
选择
创建表
。
有关更多信息,请参阅
BigQuery的创建一个摄入时间分区表文档
。
创建时间单元列划分或整数范围分区表
链接
要将BigQuery的非分区表转换为列分区表或整数范围分区表,请执行以下操作:
暂停连接器
链接
去你的
Fivetran仪表板
并选择要将未分区表转换为分区表的连接器。
检查仪表板右上角的连接器同步状态:
启用
或
暂停
。
注意:如果您的连接器已暂停,请跳至
步骤2
。
将连接器状态设置为to
暂停
。
转换为分区表
链接
要将现有表转换为分区表,请在BigQuery控制台中执行以下一个SQL语句。以下语句将创建一个分区表,从原始表插入数据,然后删除原始表:
如果您想根据TIMESTAMP列对表进行分区,请使用:
创建桌子[架构-名称]。复制划分经过日期([时间戳-柱子])作为选择*从[架构-名称]。[桌子-名称];降低桌子[架构-名称]。[桌子-名称];
如果要根据日期列分区表,请使用:
创建桌子[架构-名称]。复制划分经过[日期-柱子]作为选择*从[架构-名称]。[桌子-名称];降低桌子[架构-名称]。[桌子-名称];
如果要根据DateTime列分区表,请使用:
创建桌子[架构-名称]。复制划分经过[约会时间-柱子]作为选择*从[架构-名称]。[桌子-名称];降低桌子[架构-名称]。[桌子-名称];
如果要根据整数列分区表,请使用:
创建桌子[架构-名称]。复制划分经过Range_bucket([整数-柱子],generate_array([开始],[结尾],[间隔]))作为选择*从[架构-名称]。[桌子-名称];降低桌子[架构-名称]。[桌子-名称];
去
GCP控制台的BigQuery web UI
。
在导航栏中,选择您的项目。
选择您的数据集。在DataSet中,查找并选择您创建的复制表。
重命名复制表以具有原始表的名称。在“详细信息”面板中,单击
复制表
。
在表名称字段中,输入您的原始表的姓名并单击
复制
。
删除副本表。在BigQuery查询编辑器中执行以下SQL命令:
降低桌子[架构-名称]。复制;
重要提示:对要转换的每个表重复上述说明。
有关更多信息,请参阅bigquery的
创建时间单元列分区表
和
创建一个整数分区表
文档。
启用连接器
链接
去你的
Fivetran仪表板
并将连接器状态切换为
启用
。