ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 aws-cli 的 athena get-data-catalog 命令查询 Athena 数据目录详情

使用 aws-cli 的 athena get-data-catalog 命令查询 Athena 数据目录详情 使用 aws-cli 的 athena get-data-catalog 命令查询 Athena 数据目录详情【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读aws athena get-data-catalog是 AWS CLI当前仓库 awscli为 Amazon Athena 提供的GetDataCatalog操作封装用于返回指定数据目录Data Catalog的名称、描述、类型与连接参数等完整信息。本文以 awscli/examples/athena/get-data-catalog.rst 中的官方示例为主线结合仓库内 Athena 服务模型 service-2.json 的字段定义讲解命令用法、输出结构、参数含义以及与create-data-catalog、list-data-catalogs的组合使用帮助读者掌握数据目录的查看与排查技能。命令概览获取指定数据目录在 Athena 中数据目录Data Catalog是数据库、表和函数的元数据容器既可以是账户内默认的AwsDataCatalogGLUE 类型也可以是用户注册的外部目录LAMBDA/HIVE/FEDERATED 类型。get-data-catalog用于精确获取某一个已注册目录的完整信息。官方示例awscli/examples/athena/get-data-catalog.rstaws athena get-data-catalog \ --name dynamo_db_catalog该命令只有一个必需的参数--name即待查询数据目录的名称。执行成功后的典型输出如下{ DataCatalog: { Name: dynamo_db_catalog, Description: DynamoDB Catalog, Type: LAMBDA, Parameters: { catalog: dynamo_db_catalog, metadata-function: arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda, record-function: arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda } } }从输出可见示例中的dynamo_db_catalog是一个LAMBDA类型的联合查询目录它同时指定了metadata-function与record-function两个 Lambda 函数 ARN分别负责元数据处理与真实数据读取并携带了catalog参数作为目录别名。参数与输入结构解析依据 Athena 服务模型awscli/botocore/data/athena/2017-05-18/service-2.json中GetDataCatalogInput的定义第 2446 行起请求参数包括参数类型必填说明--nameCatalogNameString是要返回的数据目录名称--work-groupWorkGroupName否工作组名称使用 IAM Identity Center 发起请求时必填--work-group是模型中新近补充的可选参数当通过 IAM Identity Center 认证发起请求时需要传入工作组名称以便 Athena 正确解析与权限绑定的目录元数据。普通凭证如 IAM 用户/角色调用时通常无需该参数。底层 HTTP 请求形态模型GetDataCatalog操作定义第 353 行起为向端点发送POST请求http: {method: POST, requestUri: /}AWS CLI 会根据你传入的--name/--work-group自动构造 JSON 请求体并完成签名。该操作可能返回的异常包括InternalServerException服务端内部错误与InvalidRequestException参数非法如目录不存在或名称格式错误。输出结构DataCatalog 对象逐字段解读get-data-catalog的响应体只有一个顶层字段DataCatalog其结构定义位于 service-2.json 第 1875 行起的DataCatalogshape。字段含义如下字段类型说明NameCatalogNameString数据目录名称必需。在 AWS 账户内必须唯一最多 127 个字符可包含字母数字、下划线、与连字符256 的总长度约束中剩余部分由 Athena 保留使用DescriptionDescriptionString数据目录的可选描述TypeDataCatalogType目录类型LAMBDA联合查询目录、GLUEGlue Data Catalog、HIVE外部 Apache Hive Metastore、FEDERATED由 Athena 依据传入参数自动创建连接与 Lambda 函数的联合目录ParametersParametersMap目录使用的 Lambda 函数等连接参数映射具体键值取决于目录类型详见下节StatusDataCatalogStatus目录创建/删除的状态主要针对异步创建的FEDERATED目录ConnectionTypeConnectionTypeFEDERATED目录的连接类型如REDSHIFT、MYSQL、SQLSERVERErrorErrorMessage目录创建或删除过程中发生的错误文本对于同步创建的LAMBDA、GLUE、HIVE目录状态通常为CREATE_COMPLETE或CREATE_FAILEDFEDERATED目录则为异步创建状态可能处于CREATE_IN_PROGRESS、CREATE_COMPLETE、CREATE_FAILED及CREATE_FAILED_CLEANUP_IN_PROGRESS等一系列中间态DataCatalogStatus枚举第 1913 行起删除阶段亦有DELETE_IN_PROGRESS、DELETE_COMPLETE、DELETE_FAILED等状态。通过get-data-catalog查看Status字段是排查FEDERATED目录创建是否完成、是否失败的重要途径。Parameters 字段不同目录类型的参数约定Parameters是排查数据目录时最有信息量的字段。依据模型文档第 1894 行起不同Type的参数键值约定如下HIVE外部 Hive Metastoremetadata-functionlambda_arn必填sdk-versionversion_number可选默认取当前支持的版本LAMBDA联合查询目录二选一元数据与数据分别由两个函数处理metadata-functionlambda_arn与record-functionlambda_arn都必填示例中的dynamo_db_catalog即此形式单个复合函数同时处理元数据与数据functionlambda_arnGLUE必填catalog-idcatalog_id即 Glue 目录所属的 AWS 账户 ID。账户内默认的AwsDataCatalog即 GLUE 类型且每个账户仅能拥有一个、不可修改FEDERATED二选一复用已有 Glue 连接connection-arnglue_connection_arn_to_reuse新建连接connection-typeMYSQL|REDSHIFT|...与connection-propertiesjson_stringJSON 需转义例如包含spill_bucket、spill_prefix、host、port、warehouse、database、schema、SecretArn等键。因此拿到get-data-catalog输出后对照Type检查Parameters是否包含该类型所需的键即可快速判断目录配置是否完整。与周边命令的组合使用get-data-catalog通常与目录生命周期中的其他命令配合使用相关示例同样收录在仓库 awscli/examples/athena 目录下创建后校验create-data-catalog.rst 演示了创建过程aws athena create-data-catalog \ --name dynamo_db_catalog \ --type LAMBDA \ --description DynamoDB Catalog \ --parameters functionarn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda该命令本身不产生输出官方示例明确指出“要查看结果请使用aws athena get-data-catalog --name dynamo_db_catalog”可见get-data-catalog是创建操作后的标准验证手段。列出全量目录后逐个查看list-data-catalogs.rst 演示了列出账户下所有已注册目录如AwsDataCatalog、cw_logs_catalog等仅返回目录名与类型摘要而get-data-catalog则负责补全每个目录的描述、参数、状态等详细信息两者形成“列表 详情”的互补关系。更新与删除的配套操作仓库同目录下还提供了 update-data-catalog.rst 与 delete-data-catalog.rst 示例更新/删除前后均可借助get-data-catalog核对目录配置是否生效或已移除。常见使用场景与注意事项排查查询失败原因当针对外部数据源执行start-query-execution查询报错时先用get-data-catalog核对目录的Type与Parameters是否与数据源匹配例如确认LAMBDA目录的 Lambda ARN 是否仍然有效、GLUE目录的catalog-id是否正确。IAM Identity Center 环境若使用 IAM Identity Center 认证请补充--work-group参数否则请求可能因无法确定权限上下文而失败。权限要求查询目录详情需要 IAM 主体具备athena:GetDataCatalog权限模型文档亦在StartQueryExecution的说明中强调对外部目录运行查询需要GetDataCatalog权限。名称唯一性目录名称在账户内必须唯一最多 127 个合法字符--name必须精确匹配已注册名称大小写敏感。小结aws athena get-data-catalog是管理 Athena 数据目录时最常用的“详情查看”命令。通过它你可以一次性获得目录的类型、描述、连接参数乃至创建状态从而完成对联合查询LAMBDA/FEDERATED、外部 Hive MetastoreHIVE与 Glue 目录GLUE的配置核验与故障排查。结合 create-data-catalog.rst 与 list-data-catalogs.rst 等配套示例即可构成一套完整的目录管理流程。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表