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

问题描述 投票:0回答:1

我有一个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以编程方式进行操作。

有人可以建议我怎么做吗?

python etl data-processing data-management python-datamodel
1个回答
0
投票

您可以使用Pyspark。官方网站:http://spark.apache.org/。Spark专为处理和分析大数据而设计,并提供多种语言的API。如果要处理的数据非常大,并且数据操作的速度和大小很大,Spark是ETL的理想选择。还有其他可用的库。但是您说过要使用大数据,Pyspark会完成您的工作。

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

© www.soinside.com 2019 - 2024. All rights reserved.