Как сделать ETL для миллионов строк данных с помощью 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

Когда данные были в тысячах строк, я использовал, чтобы подключить эту базу данных в реальном времени с таблицами, но теперь данные увеличились, и они будут увеличиваться день ото дня. Я хочу создать панель таблиц с использованием процесса ETL, я думаю о Talend, но я хочу сделать это программно, используя python.

Может ли кто-нибудь предложить мне, как это сделать?


person Vishal Upadhyay    schedule 10.04.2020    source источник


Ответы (1)


Вы можете использовать Pyspark. Официальный сайт: http://spark.apache.org/. Spark предназначен для обработки и анализа больших данных и предлагает API на многих языках. Spark — хороший выбор для ETL, если данные, с которыми вы работаете, очень большие, а также скорость и размер ваших операций с данными. Имеются другие библиотеки. Но вы сказали, что хотите использовать большие данные, Pyspark сделает вашу работу.

Вы также можете попробовать мару. Это легкий инструмент Python ELT. Это мощный и простой в освоении и использовании. Он использует PostgreSQL в качестве механизма обработки данных, который в дальнейшем поможет вам сделать ваш проект таким же, как вы уже используете Postgre. https://github.com/mara

person Zubad Ibrahim    schedule 10.04.2020
comment
На самом деле я сталкиваюсь с трудностями при подключении postgres к pyspark. - person Vishal Upadhyay; 10.04.2020
comment
Надеюсь, это поможет: stackoverflow.com/questions /34948296/ - person Zubad Ibrahim; 10.04.2020
comment
Попробуйте это руководство, оно очень поможет: itnext.io/ - person Zubad Ibrahim; 10.04.2020
comment
@VishalUpadhyay Я обновил свой ответ. Вы можете проверить это. - person Zubad Ibrahim; 11.04.2020