如何使用python对数百万行数据进行ETL?

2024-05-19 21:56:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pgAdmin数据库,其中包含数百万geojson格式的行。使用这个表我创建了Tableau仪表板。由于这些行包含geojson格式的数据,我不得不这样查询:

select jsondata ->> 'id' as id,
jsondata -> 'properties' ->> 'qq',,
jsondata -> 'properties' ->> 'www',
jsondata -> 'properties' ->> 'eeee',
jsondata -> 'properties' ->> 'qwer' ,
jsondata -> 'properties' ->> 'yyy',
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>0,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>1,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>2,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>3,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>4,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>5,'@',2),
split_part(jsondata -> 'properties' -> '@ab:com:abc:wxy'->'tags'->>6,'@',2),
TIMESTAMP 'epoch' + cast(cast(jsondata -> 'properties'->'@ab:com:abc:wxy'->>'createdAt'as bigint)/1000 as int) * INTERVAL '1 second' as create_date,
TIMESTAMP 'epoch' + cast(cast(jsondata -> 'properties'->'@ab:com:abc:wxy'->>'updatedAt'as     bigint)/1000 as int) * INTERVAL '1 second' as Update_date
from schema.table_name

当数据以千行的形式存在时,我曾将这个数据库与tableaue实时连接,但现在数据已经增加,并且将一天比一天增加。我想使用ETL流程创建tableaue仪表板,我考虑的是Talend,但我想使用python以编程方式实现

有人能建议我怎么做吗


Tags: 数据com数据库abasgeojson格式tags
1条回答
网友
1楼 · 发布于 2024-05-19 21:56:43

你可以使用Pyspark。官方网站:http://spark.apache.org/。 Spark旨在处理和分析大数据,并提供多种语言的API。如果您处理的数据非常大,并且数据操作的速度和大小都很高,那么Spark是ETL的一个很好的选择。还有其他可用的库。但是你说你想使用大数据,Pyspark会帮你做的

你也可以试试玛拉。它是一个轻量级Python ELT工具。它功能强大,易于学习和使用。它使用PostgreSQL作为数据处理引擎,这将进一步帮助您创建项目,因为您已经在使用Postgre。 https://github.com/mara

相关问题 更多 >