我在使用 AWS Athena DynamoDB Connector 时遇到奇怪的行为。 在我看来,连接器不会读取/扫描以大写字母命名的 DynamoDB 表(例如 MY_CARS)。
在这里听我说..
我有 1 个名为“国家/地区”的测试 DynamoDB 表(全部小写),并且我将 Athena DynamoDB 连接器配置为读取和查询该表。到目前为止一切都很好,我可以使用 Athena SQL 查询查询“国家/地区”表。
现在我创建另一个 DynamoDB 表并将其命名为“MY_CARS”(全部大写),当我返回 Athena SQL 查询时,出现以下错误:
有人遇到过这个问题吗?您可以看到错误消息使用“my_cars”(小写),而我的表名称为“MY_CARS”,因此无法获取表元数据,因为 DynamoDB 表区分大小写,显然我没有名为“的表” my_cars' 带有小写字母。
我觉得这是 DynamoDB 连接器中的一个错误,但我想看看是否有人遇到或可以确认此行为(或者是否有我可以使用的快速修复)。
问题不是连接器,而是 Athena 的工作方式:
AWS Glue 中数据库名称、表名称和列名称可接受的字符必须是 UTF-8 字符串,并且应为小写。请注意,Athena 在创建数据库、表或列时会自动降低 DDL 查询中的所有大写名称。字符串长度不得小于 1 或大于 255 个字节。