Snowflake插入地理数据时“Max LOB size超限”问题咨询
PostGIS转Snowflake ETL任务报
Max LOB size exceeded异常问题 背景
近期同步PostGIS地理空间数据快照至Snowflake的ETL任务出现报错:Max LOB size exceeded。已定位到一条异常数据行,但该行此前曾成功插入Snowflake,且ETL任务未做任何变更。
ETL流程
- 第一步:将PostgreSQL数据复制到Snowflake临时表,地理空间字段以GeoJSON格式存储为VARIANT类型
- 第二步:将临时表数据同步至生产库,通过
to_geography函数把GeoJSON VARIANT转换为geography类型,报错发生在此步骤
测试验证
成功场景:直接从生产表重插该行
insert into test_db.test_schema.test_table select polygon_geography from db_prod.schema_prod.table_prod where uuid::varchar = '550e8400-e29b-41d4-a716-446655440000'
失败场景:先转GeoJSON再转回geography插入
insert into test_db.test_schema.test_table select to_geography(st_asgeojson(polygon_geography)) from db_prod.schema_prod.table_prod where uuid::varchar = '550e8400-e29b-41d4-a716-446655440000'
报错信息
Max LOB size (8388608) exceeded, actual size of parsed column is 8408491
疑问
- 为何当前限制是8388608(8MB)?Snowflake的geography类型标称支持最大16MB(16777216),这两者为何不一致?
- 该问题的具体触发原因是什么?明明数据已经存在于生产表,为何通过GeoJSON转换后就触发了大小限制?
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

