AWS胶水数据目录由不同的结构组成,例如DatabaseTablePartitionColumn等。没有仔细检查它们中的每一个,但是似乎所有它们中都存在Parameters
字段(键-值对的映射数组)。我注意到,如果表是由crawler创建的,那么我们可以看到类似的内容:
{
"CrawlerSchemaDeserializerVersion": "1.0",
"CrawlerSchemaSerializerVersion": "1.0",
"UPDATED_BY_CRAWLER": "some-crawler-name",
"averageRecordSize": "12",
"classification": "parquet",
"compressionType": "none",
"objectCount": "123",
"recordCount": "1234567",
"sizeKey": "1234567890",
"typeOfData": "file"
}
对于Table["Parameters"]
以及Table["StorageDescriptor"]["Parameters"]
。如果我们的表具有分区,则每个分区都将具有相同的词典,但averageRecordSize,objectCount,recordCount,sizeKey的值将不同。对它们进行求和后,我们得到的值与Table["Parameters"]
中的值相同。所有这些都是有道理的,我想当我们想按需或按计划重新运行爬虫时,这些值决定了爬虫的逻辑。
[不是使用搜寻器,而是使用boto3和airflow手动管理多个AWS Glue目录。例如,我可以将分区定义从目录12345中的db_1.table_1
复制到目录6789中的db_2.table_2
,或在table_1
中定义其他元参数。但是,此[[Parameters字段对我来说仍然是一个谜,我找不到与之相关的任何文档。
recordCount
,保留供AWS Glue内部使用(尽管可以手动定义)。每个键是一个键字符串,长度不少于1个或大于255个字节,与单行字符串模式匹配。
Parameters
字段可以包含多少个键?查询数据时,这些键值对的数量是否会影响性能?对表,分区及其存储描述符保持Parameters
字段同步有多重要?>