

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Glue Data Catalog
<a name="aws-glue-data-catalog"></a>

[AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) 是一个集中式元数据存储库，用于存储各种数据来源中的所有数据资产。它提供了一个统一的接口，用于存储和查询有关数据格式、架构和源的信息。AWS Glue ETL 作业运行时，它会使用此目录来了解有关数据的信息，并确保正确转换数据。

[AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) 包括以下组件：
+ 数据库和表
+ 爬网程序和分类器
+ 连接
+ 架构注册表

## AWS Glue 数据库和表
<a name="databases-tables"></a>

按[数据库和表](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html)组织 [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html)，以提供用于存储和管理元数据的逻辑结构。此结构支持使用 [AWS Identity and Access Management (IAM) policies](https://docs.aws.amazon.com/glue/latest/dg/security-iam.html) 在表或数据库级别进行精确的数据访问控制。

一个 AWS Glue 数据库可以包含多个表，并且每个表必须与一个数据库相关联。这些表包含对实际数据的引用，这些数据可以存储在任何 AWS Glue 支持的各种数据来源中。AWS Glue 表还存储重要的元数据，例如列名、数据类型和分区键。

在 AWS Glue 中创建表有几种不同的方法：
+ AWS Glue 爬网程序
+ AWS Glue ETL 作业
+ AWS Glue 管理控制台
+ [AWS Glue API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html) 中的 `CreateTable` 操作
+ AWS CloudFormation 模板
+ AWS Cloud Development Kit (AWS CDK)
+ 迁移的 Apache Hive 元数据

## AWS Glue 爬网程序和分类器
<a name="crawlers-classifiers"></a>

AWS Glue 爬网程序会自动发现并提取数据存储中的元数据，然后相应地更新 AWS Glue Data Catalog。爬网程序连接到数据存储以推断数据的架构。然后，它使用发现的架构信息在数据目录中创建或更新表。爬网程序可以同时爬取基于文件的数据存储和基于表的数据存储。要了解有关支持的数据存储的更多信息，请参阅[我可以爬取哪些数据存储？](https://docs.aws.amazon.com/glue/latest/dg/crawler-data-stores.html)

爬网程序使用[分类器](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html#classifier-when-used)来准确识别数据的格式并确定应如何处理数据。默认情况下，爬网程序使用 AWS Glue 提供的一组常用[内置分类器](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html#classifier-built-in)，但您也可以[编写自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)来处理特定的使用案例。

## AWS Glue 连接
<a name="connections"></a>

您可以使用 AWS Glue [连接](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html)来定义能够使 AWS Glue 连接到各种数据来源的连接参数。添加连接可以集中和简化连接这些源所需的配置。

[定义连接](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html)时，需要指定连接类型、连接端点和任何必需的凭证。定义连接后，多个 AWS Glue 作业和爬网程序可以重复使用该连接。使用 AWS Glue 连接可以减少重复输入相同的连接信息（例如登录凭证或虚拟私有云 (VPC) ID）的需求。

## AWS Glue 架构注册表
<a name="schema-registry"></a>

[AWS Glue 架构注册表](https://docs.aws.amazon.com/glue/latest/dg/schema-registry-gs.html)为管理和强制执行数据流架构提供了一个集中位置。它允许不同的系统（例如数据生产者和使用者）共享序列化和反序列化的架构。共享架构可以帮助这些系统进行有效通信，避免在转换过程中出错。

架构注册表确保下游数据使用者可以处理上游所做的更改，因为他们知道预期的架构。它支持架构演变，因此架构可以随着时间的推移而发生变化，同时保持与架构先前版本的兼容性。

架构注册表可与许多 AWS 服务集成，包括 Amazon Kinesis Data Streams、Firehose 和 Amazon Managed Streaming for Apache Kafka。有关用例和集成的示例，请参阅[与 AWS Glue 架构注册表集成](https://docs.aws.amazon.com/glue/latest/dg/schema-registry-integrations.html#schema-registry-integrations-amazon-msk)。