注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
虚拟表允许您在支持的数据平台中查询表,而无需先将数据存储在Foundry的数据集中。
虚拟表在Foundry外部的源系统中充当指向表的指针。虚拟表抽象掉了底层的源系统和存储格式,使您能够无缝地搭建结合不同源系统数据的工作流。虚拟表还可以与存储在Foundry中的数据集结合使用,作为一种灵活架构的一部分,数据无需在一个地方集中。
虚拟表由以下内容定义:
与Foundry中的任何资源一样,虚拟表受Foundry的安全性和权限模型管理,可以在各种Foundry应用程序中打开或使用。
以下来源支持虚拟表。有关如何配置连接以及支持的功能的详细信息,请参阅来源文档。
来源 | 状态 | 支持的格式 | 手动注册 | 自动注册 |
---|---|---|---|---|
Amazon S3 | 🟢 一般可用 | Avro ↗, Delta ↗, Iceberg ↗, Parquet ↗ | ✔️ | |
Azure Data Lake Storage Gen2 (Azure Blob Storage) | 🟢 一般可用 | Avro ↗, Delta ↗, Iceberg ↗, Parquet ↗ | ✔️ | |
BigQuery | 🟢 一般可用 | Table, View, Materialized View | ✔️ | ✔️ |
Google Cloud Storage | 🟢 一般可用 | Avro ↗, Delta ↗, Iceberg ↗, Parquet ↗ | ✔️ | |
Snowflake | 🟢 一般可用 | Table, View, Materialized View | ✔️ | ✔️ |
加载由Apache Iceberg表支持的虚拟表需要一个Iceberg目录。要了解有关Iceberg目录的更多信息,请参见Apache Iceberg文档 ↗。虚拟表支持不同的目录选项,具体取决于所使用的来源。下表突出显示了支持的目录。有关如何配置每个目录的详细信息,请参阅来源文档。
来源 | AWS Glue | Object Storage | Unity Catalog |
---|---|---|---|
Amazon S3 | 🟢 一般可用 | 🟢 一般可用 | 🟢 一般可用 |
Azure Data Lake Storage Gen2 (Azure Blob Storage) | 🔴 不可用 | 🟢 一般可用 | 🟢 一般可用 |
Google Cloud Storage | 🔴 不可用 | 🟢 一般可用 | 🔴 不可用 |
虚拟表被支持作为以下应用程序和工作流中的输入:
支持的应用程序 | 支持的工作流 | 不支持 |
---|---|---|
数据连接 | 配置来源 注册虚拟表 | 基于代理的连接 |
Contour | 在Contour中分析 | 保存为数据集 |
Ontology | 通过Pipeline Builder进行Object创建 | 通过Ontology Manager进行Object创建 |
数据沿袭 | 查看Foundry沿袭 | |
Pipeline Builder | 管道输入 Object & 数据集输出 快照搭建 增量搭建(仅追加) | 流式搭建 |
代码库 | Python变换 快照搭建 增量搭建(仅追加) | Java变换 SQL变换 |
注意某些来源类型可能不支持所有这些功能。有关详细信息,请参阅来源特定文档。了解更多关于在代码库中使用虚拟表时如何配置来源的信息。
一般来说,可以通过以下方式在大多数常见的Foundry工作流中使用虚拟表:
支持虚拟表的来源在数据连接应用程序中设置。选择您要使用的来源,然后导航到来源配置中的虚拟表选项卡。按照来源文档和使用虚拟表的任何要求进行操作。
所有来源支持手动注册,允许您在Foundry中从源系统注册单个表。某些来源还支持自动注册,这将定期在指定项目中注册可通过配置凭据访问的来源中的所有表。
使用手动注册时,您可以选择创建虚拟表,浏览源系统中可用的表,并选择要注册的单个表。除非您选择其他位置,否则这些将注册到来源的连接设置中配置的Foundry位置。
启用自动注册时,您将在Foundry中创建一个新的项目,其中虚拟表将自动创建。此项目中的文件夹层次结构将反映源系统的结构,并在源中创建新表时定期更新。删除源表时,相关的虚拟表不会在项目中自动删除,但访问它们时不会加载任何数据。
要启用自动注册,您必须在Foundry中拥有项目创建权限。
该项目由Foundry管理,用户无法在其中手动创建或更新资源。在此项目中注册的虚拟表可以导入其他项目中以用于工作流开发。
启用自动注册可以设置项目的权限和访问权限,之后可以由项目所有者通过访问侧栏进行管理。
当虚拟表在代码库中使用时,消耗它们的变换将自动根据来源上配置的出口策略获得网络出口。配置在来源上的凭据将必要地用于连接到来源。这与外部变换的行为类似。
来源上必须启用以下设置:
一旦来源已配置并导入到代码库中,虚拟表可以作为Python变换的输入使用,与数据集的使用方式相同,使用transforms.api.Input
。增量计算具有与数据集一致的API,并由部分来源支持。有关更多信息,请参阅来源特定文档。
使用虚拟表还是同步到Foundry数据集的决定取决于您的架构目标和要支持的目标工作流。我们建议在工作流的基础上考虑适当的集成模式。这两种方法可以结合使用,以相辅相成。
以下是关于使用虚拟表与同步数据到数据集的一些潜在好处、缺点和限制的考虑。
虚拟表提供了许多好处,包括:
虚拟表可能并不是在所有情况下的最佳选择。一些考虑因素包括:
虚拟表的限制包括:
对于直接在虚拟表上运行的查询,计算可能在Foundry和源系统之间分配。具体行为取决于查询以及源系统支持的下推计算程度。有关更多信息,请参阅来源特定文档。