Apache Parquet: mudanças entre as edições
(Criou página com ''''Apache Parquet''' é um formato de tabela SQL orientado a colunas, livre e de código aberto, do ecossistema Hadoop. Foi também o formato adotado pela Overture Maps Foundation para preservação, processamento e intercâmbio de dados. É semelhante ao RCFile e ORC (também formatos de colunares do Hadoop), e é compatível com a maioria...') |
(add partição) |
||
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
'''Apache Parquet''' é um formato de [[wikipedia:SQL|tabela SQL]] [[wikipedia:Column-oriented DBMS|orientado a colunas]], livre e de código aberto, do ecossistema [[wikipedia:Apache Hadoop|Hadoop]]. Foi também o formato adotado pela [[Overture Maps Foundation]] para preservação, processamento e intercâmbio de dados. | '''Apache Parquet''' é um formato de [[wikipedia:SQL|tabela SQL]] [[wikipedia:Column-oriented DBMS|orientado a colunas]], livre e de código aberto, do ecossistema [[wikipedia:Apache Hadoop|Hadoop]]. Foi também o formato adotado pela [[Overture Maps Foundation]] para preservação, processamento e intercâmbio de dados. | ||
É semelhante ao [[wikipedia:RCFile|RCFile]] e [[wikipedia:Apache ORC|ORC]] (também formatos de colunares do Hadoop), e é compatível com a maioria dos ''frameworks'' de processamento de dados em torno do Hadoop, como Hive | É semelhante ao [[wikipedia:RCFile|RCFile]] e [[wikipedia:Apache ORC|ORC]] (também formatos de colunares do Hadoop), e é compatível com a maioria dos ''frameworks'' de processamento de dados em torno do Hadoop, como [[wikipedia:Apache Hive|Hive]] e [[wikipedia:Apache Spark|Spark]]. Ele oferece eficiente compressão de dados e esquemas de codificação com bom desempenho para lidar com tabelas Big Data complexas. | ||
Devido à ampla insatisfação com Shapefiles e GeoJSON, está surgindo uma grande comunidade de uso em torno do '''GeoParquet''': https://geoparquet.org/ <br/>Em dezembro de 2023 a Overture parece ter migrado para GeoParquet, https://overturemaps.org/overture-december-2023-release-notes/ | |||
== Partição == | |||
Bancos de dados distribuídos, para terem maior performance, requerem que cada tabela eleja, do ponto de vista lógico, um critério de partição. Por exemplo a data, país ou região de um registro. Registros com mesmo valor de partição lógica ficarão no mesmo arquivo Parquet (mesma partição física). Sugere-se, para uma boa performance nas consultas ao banco de dados, que o tamanho médio de arquivo (por partição) seja [https://www.reddit.com/r/dataengineering/comments/12yknp3/how_big_are_your_data_lake_raw_files_parquet_files/?rdt=47741 da ordem de 1GB]. | |||
== Uso com PostgreSQL == | |||
Os recursos mais citados são: | |||
* '''FDW''', https://github.com/adjust/parquet_fdw | |||
* Driver '''JDBC''' adaptado como FOREGIN TABLE, https://github.com/pgspider/jdbc_fdw | |||
Caso tenha problemas, para tradução em ''bash'' existe o [https://github.com/adriangb/pgpq pgpq]. No caso da [[OvertureMaps]] que disponibiliza para os seus membros o ''Parquet file on Amazon S3'', a melhor opção é o driver JDBC. | |||
Recomenda-se fazer preservação digital com Parquet, ver artigo [https://www.crunchydata.com/blog/parquet-and-postgres-in-the-data-lake Parquet and Postgres in the Data Lake]. | |||
== Uso com Hive e Spark == | |||
External e Managed tables podem operar [https://cwiki.apache.org/confluence/display/Hive/Parquet#Parquet-NativeParquetSupport nativamente com Parquet no Hive]. | |||
Spark pode ler e escrever [https://spark.apache.org/docs/latest/sql-data-sources-parquet.html ''dataframes'' diretamente no Parquet]. |
Edição atual tal como às 08h09min de 19 de abril de 2024
Apache Parquet é um formato de tabela SQL orientado a colunas, livre e de código aberto, do ecossistema Hadoop. Foi também o formato adotado pela Overture Maps Foundation para preservação, processamento e intercâmbio de dados.
É semelhante ao RCFile e ORC (também formatos de colunares do Hadoop), e é compatível com a maioria dos frameworks de processamento de dados em torno do Hadoop, como Hive e Spark. Ele oferece eficiente compressão de dados e esquemas de codificação com bom desempenho para lidar com tabelas Big Data complexas.
Devido à ampla insatisfação com Shapefiles e GeoJSON, está surgindo uma grande comunidade de uso em torno do GeoParquet: https://geoparquet.org/
Em dezembro de 2023 a Overture parece ter migrado para GeoParquet, https://overturemaps.org/overture-december-2023-release-notes/
Partição
Bancos de dados distribuídos, para terem maior performance, requerem que cada tabela eleja, do ponto de vista lógico, um critério de partição. Por exemplo a data, país ou região de um registro. Registros com mesmo valor de partição lógica ficarão no mesmo arquivo Parquet (mesma partição física). Sugere-se, para uma boa performance nas consultas ao banco de dados, que o tamanho médio de arquivo (por partição) seja da ordem de 1GB.
Uso com PostgreSQL
Os recursos mais citados são:
- FDW, https://github.com/adjust/parquet_fdw
- Driver JDBC adaptado como FOREGIN TABLE, https://github.com/pgspider/jdbc_fdw
Caso tenha problemas, para tradução em bash existe o pgpq. No caso da OvertureMaps que disponibiliza para os seus membros o Parquet file on Amazon S3, a melhor opção é o driver JDBC.
Recomenda-se fazer preservação digital com Parquet, ver artigo Parquet and Postgres in the Data Lake.
Uso com Hive e Spark
External e Managed tables podem operar nativamente com Parquet no Hive.
Spark pode ler e escrever dataframes diretamente no Parquet.