管理数据集
您可以管理登陆、存储、转换、数据集市和复制数据任务中包含的数据集,以创建转换、筛选数据和添加列。
包含的数据集列在设计视图的数据集下。您可以使用列选择器 () 选择要显示的列。
转换规则和显式转换
您可以执行全局和显式转换。
转换规则
您可以通过创建一个转换规则来执行全局转换,该规则使用 % 作为作用域中的通配符,以应用于所有匹配的数据集。
-
单击规则,然后单击添加规则以创建新的转换规则。
有关更多信息,请参阅创建规则以转换数据集。
变换规则由受影响属性上的深紫色角表示。
显式转换
创建显式转换:
-
使用编辑更改列属性时
-
在数据集上使用重命名时。
-
添加列时。
显式变换覆盖全局变换,并由受影响属性上的浅紫色角表示。
数据集模型
数据集可以基于源,也可以基于目标,具体取决于任务类型和任务中的操作。所使用的数据集模型会影响源更改时管道的行为,以及可以执行的操作。
-
源型数据集
数据集基于源数据集,仅保留元数据的更改。源数据的更改会自动应用,这可能会导致所有下游任务的更改。无法更改列顺序或更改源数据集。
以下任务类型始终使用基于源的数据集模型:登陆、存储、注册数据、复制和在数据湖中登陆。
-
基于目标的数据集
数据集于目标元数据。如果从源添加或删除列,则不会自动将其应用到下一个下游任务。您可以更改列的顺序和源数据集。这意味着任务更加独立,并允许您控制源代码更改的效果。
以下任务类型可以使用基于目标的数据集模型:转换、数据集市。在某些情况下,基于源的模型用于基于操作的转换任务。
-
如果 SQL 转换或转换流执行列选择,则数据集将基于目标。例如,如果在 SQL 转换中使用 SELECT A, B, C from XYZ,或在转换流中使用选择列处理器。
-
如果保留默认列,则数据集基于源。例如,如果您在 SQL 转变中使用 SELECT * from XYZ 。
-
将项目从基于源的模型更新为基于目标的模型
在适用的情况下,现有项目将更新为基于目标的数据集模型。首次打开项目时,您将在更新过程中得到指导。导入和导出具有不同数据集模型的项目时需要考虑一些因素。
-
无法将具有基于源模型的项目导入到具有基于目标模型的项目中。
将具有基于源代码的模型的项目导入到新项目中,更新新项目,然后导出生成的项目。现在,您可以将此项目重新导入到具有基于目标的模型的项目中。
-
无法将具有基于目标的模型的项目导入到具有基于源的模型的项目中。
在导入具有基于目标的模型的项目之前,将项目更新为基于目标的模型。
筛选数据集
如果需要,可以筛选数据以创建行的子集。
-
单击筛选器。
有关更多信息,请参阅筛选数据集。
重命名数据集
您可以重命名数据集。
-
单击数据集上的 ,然后单击重命名。
添加列
如果需要,可以使用行级转换添加列。
-
单击添加列
有关更多信息,请参阅向数据集添加列。
编辑列
可以通过选择列并单击编辑来编辑列属性。
-
名称
-
密钥
将列设置为主键。也可以通过在关键列中选择或取消选择来设置关键点。
-
可为 Null
-
数据类型
设置列的数据类型。对于某些数据类型,可以设置其他特性,例如长度。
了解更改数据类型的影响
更改数据类型大小或切换到不同数据类型有两种常见用例:
- 摄入不适合当前数据类型的数据。
- 对更高数值精度的要求。例如将 SMALLINT 更改为 DECIMAL (p,s)。
在大多数情况下,更改数据类型将导致修改表操作,从而防止数据丢失。例如,如果之前的数据类型是 STRING (25),而新的数据类型为 STRING (50),则具有新数据类型的列中的数据将被更新而不会出现任何问题。但是,在某些情况下,更改数据类型会导致表被删除并重新创建。例如,如果前一列的数据类型为 NUMBER,而您将其更改为 DATE,则该表将被删除并重新创建,因为无法将数字转换为日期。同样地,如果目标平台不支持修改表操作(如 Databricks),该表将被删除并重新创建。
在某些情况下,理论上可以更改表,但由于底层的复杂性,数据任务将删除并重新创建表。最后,在某些情况下,潜在的数据丢失而不是实际的数据丢失会触发删除和重新创建操作。例如,如果将 STRING(25) 更改为 STRING(1),并且摄入的数据不适合 STRING(1),则会发生数据丢失。然而,STRING(25) 可能总是只包含一个字符,因此在实践中不会发生数据丢失,但由于潜在的数据丢失,仍将删除并重新创建表。
需要删除和重新创建表的数据类型更改,无论目标平台为何
更改以下数据类型将导致表被删除并重新创建:
- BYTES
- BLOB
- CLOB
- NCLOB
目标平台支持更改数据类型大小,而无需删除和重新创建表
使用 Snowflake、Google BigQuery、Amazon Redshift、Microsoft SQL Server 和 Azure Synapse Analytics 时,您可以更改某些数据类型的大小,而无需删除和重新创建表。下表列出了上述每个平台支持的数据类型。
数据类型 | Snowflake | Google BigQuery | Azure Synapse Analytics | Microsoft SQL Server | Amazon Redshift |
---|---|---|---|---|---|
INT1 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
INT2 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
INT4 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
INT8 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
REAL4 |
不支持 |
不支持 |
支持 |
支持 |
不支持 |
REAL8 |
不支持 |
不支持 |
支持 |
支持 |
不支持 |
UINT1 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
UINT2 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
UNIT4 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
UNIT8 |
不支持 |
支持 |
支持 |
支持 |
不支持 |
NUMERIC |
是 |
支持 |
支持 |
支持 |
不支持 |
STRING |
是 |
支持 |
支持 |
支持 |
支持 |
WSTRING |
不支持 |
支持 |
支持 |
支持 |
不支持 |
支持将数据类型更改为 STRING 而无需删除和重新创建表的目标平台
将数据移动到 Microsoft SQL Server 和 Azure Synapse Analytics 时,您可以将以下数据类型更改为 STRING,而无需删除并重新创建表:
- BOOLEAN
- DATE
- TIME
- DATETIME
- INT1
- INT2
- INT4
- INT8
- REAL4
- REAL8
- UINT1
- UINT2
- UNIT4
- UNIT8
- NUMERIC
- WSTRING(仅对 Azure Synapse Analytics 支持)
删除列
您可以从数据集中删除一列或多列。
-
选择要删除的列,然后单击删除。
如果要查看删除的列,请单击显示删除的列。删除的列用删除线文本表示。您可以通过选择删除的列并单击恢复来检索该列。
恢复对列的显式更改
您可以将所有显式更改还原为一个或多个列。
-
选择要还原更改的列,然后单击还原。
不会恢复对全局转换规则的更改。
如果还原添加的列,它将被删除。
数据集设置
您可以更改数据集的设置。默认设置是继承数据资源的设置,但也可以将设置显式更改为“开”或“关”。
-
单击数据集上的 ,然后单击设置。
查看数据
在设计数据管道时,您可以查看数据示例以查看和验证数据的形状。
必须满足以下要求:
-
在 管理 中的租户级别上启用了查看数据的功能。
启用设置>特性控制 > 在 数据集成 中查看数据。
-
您将在连接所在的空间中分配可以查看数据角色。
-
您将在项目所在的空间中分配可以查看角色。
要在设计视图的数据集选项卡中查看示例数据,请执行以下操作:
-
单击物理对象中的查看数据。
将显示数据示例。可以使用行数设置要包含在示例中的数据行数。
要在数据集和表之间进行更改,请执行以下操作:
-
选择数据集以查看数据的逻辑表示形式。
-
选择物理对象以在数据库中以表和视图的形式查看物理表示。
新闻注释如果尚未创建物理表达,则此选项不可用。
您可以通过两种方式筛选样本数据:
-
使用 筛选要检索的样本数据。
例如,如果您使用筛选器 ${OrderYear}>2023,并且行数设置为 10,那么您将从 2024 年获得 10 个订单的样本。
-
按特定列筛选示例数据。
这只会影响现有的样本数据。如果您使用 以只包括 2024 年的订单,并将列筛选器设置为显示 2022 年的订单时,结果为空样本。
您也可以按特定列对数据样本进行排序。排序只会影响现有的样本数据。如果您使用 只包括 2024 年的订单并反转排序顺序,则示例数据仍将只包含 2024 年以来的订单。
可以在数据视图中隐藏列:
-
通过单击列上的 ,然后单击隐藏列来隐藏单个列。
-
通过单击任意列上的 ,然后单击显示列,隐藏多个列。这样可以控制视图中所有列的可见性。
验证和调整数据集
您可以验证数据任务中包含的所有数据集。
展开验证并调整以查看所有验证错误和设计更改。
验证数据集
-
单击验证数据集以验证数据集。
验证包括检查:
-
所有表都有一个主键
-
没有缺少的属性。
-
没有重复的表名或列名。
您还将获得与源代码相比的设计更改列表:
-
添加了表和列
-
删除的表和列
-
重命名的表和列
-
更改的主键和数据类型
展开验证并调整以查看所有验证错误和设计更改。
-
修复验证错误,然后再次验证数据集。
-
除更改的主键或数据类型外,大多数设计更改都可以自动调整。在这种情况下,您需要同步数据集。
准备数据集
如果可能的话,您可以准备数据集以调整设计更改,而不会丢失数据。如果有设计更改无法在不丢失数据的情况下进行调整,则可以选择在有数据丢失的情况下从源重新创建表。
这需要停止任务。
-
单击 ,然后单击准备。
准备数据集后,请在重新启动存储任务之前验证数据集。
重新创建数据集
您可以从源重新创建数据集。当您重新创建数据集时,将会发生数据丢失。只要您有源数据,就可以从源重新加载它。
这需要停止任务。
-
单击 ,然后重新创建。
限制
-
在 GoogleBigQuery 中,如果删除或重命名列,这将重新创建表并导致数据丢失。