Apache Parquet
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.