问题标签 [aws-glue-data-catalog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2614 浏览

pyspark - AWS Glue Spark 作业无法支持带有双引号的大写列名称

问题陈述/根本原因:我们正在使用 AWS Glue 将数据从生产 PostGress DB 加载到 AWS DataLake。Glue 在内部使用 Spark 作业来移动数据。然而,我们的 ETL 过程失败了,因为 Spark 只支持小写的表列名,不幸的是,我们所有的源 PostGress 表列名都采用 CamelCase 格式并用双引号括起来。

例如:我们在 PostGress DB 中的 Source 表列名称是“CreatedDate”。Spark 作业查询正在查找 createddate,但由于找不到列名而失败。因此,火花作业查询需要准确查找“CreatedDate”才能从 PostGress DB 中移动数据。这似乎是 Spark(因为它只支持小写的表列名)和 PostGress(使用双引号创建的列名在其余生中必须双引号)的固有限制。

参考链接: https : //docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html PostgreSQL 列名是否区分大小写?

评估的解决方案: 1. 我们将无法将列名从 CamelCase 重命名为小写,因为这将需要对所有下游系统进行更大的更改。2. 我们正在尝试重写/调整 Glue 的自动生成的 Spark 代码,看看我们是否可以让它与双引号、非小写的源表列名一起工作。

以前有没有人遇到过这个问题,您是否尝试过调整自动生成的 Spark 代码以使其正常工作?

0 投票
1 回答
2019 浏览

amazon-web-services - AWS Glue 目录 API:不同结构的元数据中的参数字段

AWS Glue 数据目录由不同的结构组成,例如 DatabaseTablePartitionColumn等。还没有仔细研究过它们中的每一个,但似乎Parameters字段(键值对的映射数组)存在于所有他们。我注意到如果表是由爬虫创建的,那么我们可以看到如下内容:

对于Table["Parameters"]以及Table["StorageDescriptor"]["Parameters"]。如果我们的表有分区,那么每个分区都有相同的字典,但averageRecordSizeobjectCountrecordCountsizeKey的值不同。将它们相加后,我们最终得到与 中相同的值Table["Parameters"]。所有这些都是有道理的,我猜这些值决定了我们想要按需或按计划重新运行爬虫的逻辑。

我没有使用爬虫,而是使用boto3气流手动管理多个 AWS Glue 目录。例如,我可以将db_1.table_1目录12345中的分区定义复制到db_2.table_2目录6789中,或者在table_1. 然而,这个参数字段对我来说仍然是一个谜,我找不到任何与它相关的文档。

看起来有些键,例如recordCount,保留供 AWS Glue 内部使用(尽管它们可以手动定义)。

  1. 其他服务(尤其是 Athena)是否也使用它们?
  2. 我在哪里可以找到这些键的列表及其含义,这样我的键就不会干扰?
  3. 文档提到这些键值对定义了与表关联的属性和一些限制:

    1. 每个键都是一个键字符串,长度不小于 1 或大于 255 字节,与单行字符串模式匹配。
    2. 每个值都是一个 UTF-8 字符串,长度不超过 512000 字节。

    字段可以包含多少个键是否有任何限制Parameters?当您查询数据时,这些键值对的数量是否会影响性能?

  4. 保持Parameters表、分区及其存储描述符的字段同步有多重要
0 投票
0 回答
289 浏览

amazon-web-services - 如何使用自定义分类器使 AWS Glue 爬网程序跳过日志文件的第一行?

我是胶水新手,我正在尝试让爬虫功能从一些日志文件中提取数据库表。问题是文件有不同的第一行。我已经定义了一个自定义 Grok 分类器,只要我删除第一行就可以正常工作,但是当我使用原始日志文件时,它会停止工作并使用默认的胶水分类器(这显然对我不起作用)。我尝试将 'skip.header.line.count'=1 添加到表属性(并将爬虫设置为不更新架构),但这也不起作用。有没有办法在 grok 模式中写“跳过第一行”?

0 投票
1 回答
3366 浏览

python - 使用目录表中的模式创建动态框架

我已经通过 API aws 胶水中的 create_table 在目录表中创建了表。

通过此代码示例,下面的代码正在目录中创建表。

当我从这个表创建动态框架时,它是空的,没有架构。

我想用这四列创建空的动态框架

}})

0 投票
1 回答
1204 浏览

amazon-web-services - 如何在外部在 Amazon Glue 中创建数据目录?

我想在 Amazon Glue 中创建外部数据目录。有什么办法吗?

0 投票
1 回答
959 浏览

amazon-web-services - AWS Glue 数据目录存储在哪里?

我正在研究 Glue 数据目录,我有点困惑。我知道 Glue 数据目录不存储数据本身,而只是存储数据库和表的元数据,但是,它们的存储位置在哪里?

0 投票
1 回答
891 浏览

github - 如何将 Github 与 AWS Glue 中的数据目录集成

这个问题是关于 AWS Glue 的数据目录的。

我想建立一个这样的过程:

将 Github 连接到 AWS Glue 数据目录 -> 关于数据目录代码的拉取请求(源) -> 合并 -> 在 AWS Glue 数据目录中反映修改后的代码 -> 更改的数据目录信息由 Markdown 创建。或者在 Confluence 中更新信息

这项工作的目的是使非开发人员可以阅读数据目录。

这可能吗?我应该读什么文学作品?欢迎任何建议!帮助!!

0 投票
2 回答
1047 浏览

python-3.x - 使用 boto3 创建到 mysql 的胶水连接

我正在尝试创建一个新的 aws 胶水连接。我正在使用下面的 boto3 脚本。我能够连接类似的脚本并检索数据目录数据库中的表结构。所以我知道客户正在工作。我知道可用区也是 us-west-2。我从我已经创建的粘合连接中复制了其余信息。我只是想测试 boto3 脚本,看看是否可以通过脚本创建连接。有谁看到问题可能是什么?我正在尝试连接到 ec2 实例上的 mysql 数据库。

代码:

错误:

0 投票
1 回答
455 浏览

amazon-web-services - 使用 AWS Glue 爬虫进行智能采样

我的 s3 存储桶上有几张桌子。这些表在内存大小和文件数量上都很大,它们存储在 JSON(次优,我知道)中并且有很多分区。

现在我想启用 AWS Glue 数据目录和 AWS Glue 爬虫,但是我对遍历所有数据的爬虫的价格感到害怕。

架构不会经常更改,因此无需遍历 S3 上的所有文件。

默认情况下,Crawlers 会遍历所有文件吗?是否可以配置一个更智能的采样策略,只查看部分文件而不是所有文件?

0 投票
2 回答
1293 浏览

aws-glue - AWS Glue - 如何查询 LOCATION 的 Glue 目录?

任何人都知道如何(Athena w Glue)返回我知道其表名的表的完整 s3:// 地址。就像是:

看起来很简单,但我找不到