# etl

ETL (extract, transform, and load) is a process that combines data from multiple sources, transforms it, and loads it into a data warehouse or other target store.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Windmill for Supporting Indigenous Communities - Conservation Metrics Case Study

DevFeed: [Windmill for Supporting Indigenous Communities - Conservation Metrics Case Study](<https://devfeed.tech/articles/windmill-for-supporting-indigenous-communities-conservation-metrics-case-study-30712.md>)

Original publisher: [Read original article](<https://www.windmill.dev/blog/conservation-metrics-case-study>)

Author: Rudo Kemper

Published: 2025-06-03T00:00:00Z

Content type: article

Language: en

Sources: [Windmill Blog](<https://devfeed.tech/sources/windmill-blog.md>)

Topics: [data-processing](<https://devfeed.tech/topics/data-processing.md>), [etl](<https://devfeed.tech/topics/etl.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [brazil](<https://devfeed.tech/tags/brazil.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [case-study-testimonial-tech-for-good](<https://devfeed.tech/tags/case-study-testimonial-tech-for-good.md>), [dagster](<https://devfeed.tech/tags/dagster.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [data](<https://devfeed.tech/tags/data.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [etl](<https://devfeed.tech/tags/etl.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-software](<https://devfeed.tech/tags/open-source-software.md>), [tech-for-good](<https://devfeed.tech/tags/tech-for-good.md>), [testimonial](<https://devfeed.tech/tags/testimonial.md>), [whatsapp](<https://devfeed.tech/tags/whatsapp.md>), [windmill](<https://devfeed.tech/tags/windmill.md>), [work](<https://devfeed.tech/tags/work.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This case study describes how Conservation Metrics uses Windmill to support environmental monitoring and data sovereignty initiatives with indigenous communities. The workflows collect data from field applications and wildlife sensors, process and load it into databases, generate reports and alerts, notify communities through WhatsApp, and update monitoring dashboards.

### Source excerpt

This is a testimonial from Rudo Kemper from Conservation Metrics about how Windmill has helped them build open-source software for indigenous communities, enabling automated data processing and critical alerts for environmental protection.

## Partitioning a large table in PostgreSQL with Rails

DevFeed: [Partitioning a large table in PostgreSQL with Rails](<https://devfeed.tech/articles/partitioning-a-large-table-in-postgresql-with-rails-33527.md>)

Original publisher: [Read original article](<https://www.aha.io/engineering/articles/partitioning-a-large-table-in-postgresql-with-rails>)

Published: 2025-04-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Aha! Engineering Blog](<https://devfeed.tech/sources/aha-engineering-blog.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Database](<https://devfeed.tech/topics/database.md>), [Amazon RDS](<https://devfeed.tech/topics/amazon-rds.md>), [backups](<https://devfeed.tech/topics/backups.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [etl](<https://devfeed.tech/topics/etl.md>), [Disaster Recovery](<https://devfeed.tech/topics/disaster-recovery.md>), [datadog](<https://devfeed.tech/topics/datadog.md>)

Tags: [active-record](<https://devfeed.tech/tags/active-record.md>), [amazon-rds](<https://devfeed.tech/tags/amazon-rds.md>), [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [backups](<https://devfeed.tech/tags/backups.md>), [datadog](<https://devfeed.tech/tags/datadog.md>), [disaster-recovery](<https://devfeed.tech/tags/disaster-recovery.md>), [etl](<https://devfeed.tech/tags/etl.md>), [latency](<https://devfeed.tech/tags/latency.md>), [migration](<https://devfeed.tech/tags/migration.md>), [partitioning](<https://devfeed.tech/tags/partitioning.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rails](<https://devfeed.tech/tags/rails.md>)

### AI overview

This article explains how Aha! partitioned a very large PostgreSQL audit table used with Rails. It covers the migration strategy, operational and performance problems caused by billions of rows, and an archival process that moves audits older than 12 months to Amazon S3.

### Source excerpt

Keeping a reliable history of changes is essential for our users. They need to know when a record was updated, who made the change, and why. They could be anxiously awaiting a notification about a dependency that is blocking their work. Maybe they w

## Think About SQL MERGE in Terms of a RIGHT JOIN

DevFeed: [Think About SQL MERGE in Terms of a RIGHT JOIN](<https://devfeed.tech/articles/think-about-sql-merge-in-terms-of-a-right-join-28967.md>)

Original publisher: [Read original article](<https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/>)

Author: lukaseder

Published: 2025-03-13T14:45:53Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [etl](<https://devfeed.tech/topics/etl.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [databricks](<https://devfeed.tech/tags/databricks.md>), [etl](<https://devfeed.tech/tags/etl.md>), [firebird](<https://devfeed.tech/tags/firebird.md>), [merge](<https://devfeed.tech/tags/merge.md>), [outer-join](<https://devfeed.tech/tags/outer-join.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [right-join](<https://devfeed.tech/tags/right-join.md>), [schema](<https://devfeed.tech/tags/schema.md>), [semantics](<https://devfeed.tech/tags/semantics.md>), [source](<https://devfeed.tech/tags/source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [statement](<https://devfeed.tech/tags/statement.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [table](<https://devfeed.tech/tags/table.md>), [target-table](<https://devfeed.tech/tags/target-table.md>), [when-matched](<https://devfeed.tech/tags/when-matched.md>), [when-not-matched](<https://devfeed.tech/tags/when-not-matched.md>), [when-not-matched-by-source](<https://devfeed.tech/tags/when-not-matched-by-source.md>)

### AI overview

The article explains SQL MERGE by relating its target-and-source behavior to a RIGHT JOIN. It covers updating matching rows, inserting nonmatching rows, deletion behavior, and the restriction against duplicate matches.

### Source excerpt

RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. The following two statements are equivalent: It's not unreasonable to expect these two statements to produce the same execution plan on most RDBMS, ... Continue reading Think About SQL MERGE in Terms of a RIGHT JOIN ->

## Windmill for AI Workflows - Investing.com Case Study

DevFeed: [Windmill for AI Workflows - Investing.com Case Study](<https://devfeed.tech/articles/windmill-for-ai-workflows-investing-com-case-study-30716.md>)

Original publisher: [Read original article](<https://www.windmill.dev/blog/investing-case-study>)

Author: Yonathan Adest

Published: 2025-02-24T00:00:00Z

Content type: article

Language: en

Sources: [Windmill Blog](<https://devfeed.tech/sources/windmill-blog.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [etl](<https://devfeed.tech/topics/etl.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [airflow](<https://devfeed.tech/topics/airflow.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [airflow](<https://devfeed.tech/tags/airflow.md>), [automation](<https://devfeed.tech/tags/automation.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [case-study-testimonial-fintech-investing](<https://devfeed.tech/tags/case-study-testimonial-fintech-investing.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [etl](<https://devfeed.tech/tags/etl.md>), [fintech](<https://devfeed.tech/tags/fintech.md>), [human-review](<https://devfeed.tech/tags/human-review.md>), [investing](<https://devfeed.tech/tags/investing.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [push-notifications](<https://devfeed.tech/tags/push-notifications.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [testimonial](<https://devfeed.tech/tags/testimonial.md>), [windmill](<https://devfeed.tech/tags/windmill.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This Investing.com case study describes how its AI team uses Windmill to orchestrate content processing and distribution, stock-analysis report generation, and ETL workflows. The workflows use webhooks, AI models, vector embeddings, human review, and PostgreSQL, while Windmill provides tracing, logging, and Docker Compose deployment.

### Source excerpt

This is a testimonial from Yonathan Adest, CTO at Investing.com, about how Windmill has helped them to automate their workflows and improve their data processing capabilities.

## The unnecessary hype strategy behind Microsoft Fabric

DevFeed: [The unnecessary hype strategy behind Microsoft Fabric](<https://devfeed.tech/articles/the-unnecessary-hype-strategy-behind-microsoft-fabric-40838.md>)

Original publisher: [Read original article](<https://mutto.fyi/posts/2023/05/the-unnecessary-hype-fabric/>)

Published: 2023-05-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Mutt0-ds Notes](<https://devfeed.tech/sources/mutt0-ds-notes.md>)

Topics: [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [Azure](<https://devfeed.tech/topics/azure.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [data lake](<https://devfeed.tech/topics/data-lake.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [etl](<https://devfeed.tech/topics/etl.md>), [AI, ML & Data Engineering](<https://devfeed.tech/topics/ai-ml-data-engineering.md>)

Tags: [azure](<https://devfeed.tech/tags/azure.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [data](<https://devfeed.tech/tags/data.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [data-lake](<https://devfeed.tech/tags/data-lake.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [etl](<https://devfeed.tech/tags/etl.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [microsoft-azure](<https://devfeed.tech/tags/microsoft-azure.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

An opinion article examines Microsoft Fabric, a unified data platform announced at Microsoft Build. It describes Fabric's integration of data storage, processing, ETL, analytics, and business intelligence tools, while criticizing Microsoft's secrecy and hype-oriented launch strategy and noting that the platform was still in beta.

### Source excerpt

If you are into Data Engineering in Microsoft Azure Cloud Environment, you probaly heard about Microsoft Fabric being announced last week...

## My first weeks at Acer Europe

DevFeed: [My first weeks at Acer Europe](<https://devfeed.tech/articles/my-first-weeks-at-acer-europe-40831.md>)

Original publisher: [Read original article](<https://mutto.fyi/posts/2022/10/first-weeks-acer/>)

Published: 2022-10-16T00:00:00Z

Content type: opinion

Language: en

Sources: [Mutt0-ds Notes](<https://devfeed.tech/sources/mutt0-ds-notes.md>)

Topics: [Azure](<https://devfeed.tech/topics/azure.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [etl](<https://devfeed.tech/topics/etl.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Purview](<https://devfeed.tech/topics/purview.md>), [active directory](<https://devfeed.tech/topics/active-directory.md>), [data-governance](<https://devfeed.tech/topics/data-governance.md>)

Tags: [active-directory](<https://devfeed.tech/tags/active-directory.md>), [azure](<https://devfeed.tech/tags/azure.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [data-governance](<https://devfeed.tech/tags/data-governance.md>), [databases](<https://devfeed.tech/tags/databases.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devops](<https://devfeed.tech/tags/devops.md>), [etl](<https://devfeed.tech/tags/etl.md>), [purview](<https://devfeed.tech/tags/purview.md>)

### AI overview

A Business Intelligence Developer reflects on their first weeks at Acer Europe, describing the transition from a small company to a large IT organization. The post covers the scale of its data, reporting, ETL, Azure services, and cross-team work, along with the information overload and learning challenges of the first week.

### Source excerpt

This is a post for my future self when I will be asking myself: "How were my first days at Acer like?". Note: I'm working at Acer EMEA HQ,...

## Lesser Known PostgreSQL Features

DevFeed: [Lesser Known PostgreSQL Features](<https://devfeed.tech/articles/lesser-known-postgresql-features-33926.md>)

Original publisher: [Read original article](<https://hakibenita.com/postgresql-unknown-features>)

Author: Haki Benita

Published: 2021-11-07T22:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [etl](<https://devfeed.tech/topics/etl.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [articles](<https://devfeed.tech/tags/articles.md>), [etl](<https://devfeed.tech/tags/etl.md>), [features](<https://devfeed.tech/tags/features.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

This article presents lesser-known PostgreSQL features, including a command for synchronizing table data and a technique for distinguishing inserted rows from updated rows using a system column. It also discusses logging ETL processes.

### Source excerpt

A list of useful features you already have, but may not know about! In this article I share lesser known features of PostgreSQL.

## How we build the Image Gallery on trivago

DevFeed: [How we build the Image Gallery on trivago](<https://devfeed.tech/articles/how-we-build-the-image-gallery-on-trivago-28012.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2021-07-07-image-gallery-pipeline/>)

Author: Praneeth Peiris I want

Published: 2021-07-07T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [etl](<https://devfeed.tech/topics/etl.md>), [data lake](<https://devfeed.tech/topics/data-lake.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [amazon-web-services-aws](<https://devfeed.tech/tags/amazon-web-services-aws.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [backend](<https://devfeed.tech/tags/backend.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data-lake](<https://devfeed.tech/tags/data-lake.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [etl](<https://devfeed.tech/tags/etl.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [platforms](<https://devfeed.tech/tags/platforms.md>)

### AI overview

trivago describes migrating its hotel image-gallery ETL pipeline from Amazon Web Services to Google Cloud Platform. The redesigned architecture uses Dataflow jobs to snapshot images and tags, fetch changed accommodations, build and validate sorted galleries, and stream approved changes to frontend teams through Kafka.

### Source excerpt

When was the last time you booked accommodation without checking its photos? Most probably never! Because having imagery information makes our decision-making process much easier and faster. How...

## Accommodation Consolidation: How we created an ETL pipeline on cloud

DevFeed: [Accommodation Consolidation: How we created an ETL pipeline on cloud](<https://devfeed.tech/articles/accommodation-consolidation-how-we-created-an-etl-pipeline-on-cloud-27990.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2020-03-26-accommodationconsolidationhowwecreatedan/>)

Author: Praneeth Peiris I want

Published: 2020-03-26T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [AWS Glue](<https://devfeed.tech/topics/aws-glue.md>), [AWS Step Functions](<https://devfeed.tech/topics/aws-step-functions.md>), [etl](<https://devfeed.tech/topics/etl.md>), [data](<https://devfeed.tech/topics/data.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-glue](<https://devfeed.tech/tags/aws-glue.md>), [aws-step-functions](<https://devfeed.tech/tags/aws-step-functions.md>), [backend](<https://devfeed.tech/tags/backend.md>), [batch](<https://devfeed.tech/tags/batch.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data](<https://devfeed.tech/tags/data.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [etl](<https://devfeed.tech/tags/etl.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>)

### AI overview

trivago describes a hybrid AWS architecture using AWS Glue and AWS Step Functions to build ETL pipelines for consolidating frequently changing hotel information from hundreds of partners. The approach batches updates to reduce computational overhead and supports separately tested consolidation models and sandbox environments.

### Source excerpt

Imagine you go to your hotel for check-in and they say that your dog is not allowed even though the website clearly states that it is!trivago gets information about millions of accommodat...

## Airflow Survey 2019

DevFeed: [Airflow Survey 2019](<https://devfeed.tech/articles/airflow-survey-2019-32549.md>)

Original publisher: [Read original article](<https://airflow.apache.org/blog/airflow-survey/>)

Author: Apache Airflow

Published: 2019-12-11T00:00:00Z

Content type: article

Language: en

Sources: [Apache Airflow Blog](<https://devfeed.tech/sources/apache-airflow-blog.md>)

Topics: [airflow](<https://devfeed.tech/topics/airflow.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [etl](<https://devfeed.tech/topics/etl.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [apache-airflow](<https://devfeed.tech/tags/apache-airflow.md>), [cli](<https://devfeed.tech/tags/cli.md>), [community](<https://devfeed.tech/tags/community.md>), [data](<https://devfeed.tech/tags/data.md>), [devops](<https://devfeed.tech/tags/devops.md>), [etl](<https://devfeed.tech/tags/etl.md>), [overview](<https://devfeed.tech/tags/overview.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [survey](<https://devfeed.tech/tags/survey.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [users](<https://devfeed.tech/tags/users.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This article reports findings from the 2019 Apache Airflow user survey, which received 308 responses. Respondents primarily used Airflow for data processing and ETL, with additional use for machine learning pipelines and DevOps operations. The survey also describes the scale of users' DAGs and tasks, onboarding difficulties, testing and UI concerns, and interface usage.

### Source excerpt

Apache Airflow Survey 2019 Apache Airflow is growing faster than ever. Thus, receiving and adjusting to our users' feedback is a must. We created survey and we got 308 responses. Let's see who Airflow users are, how they play with it, and what they miss. Overview of the user What best describes your current occupation? No. % Data Engineer 194 62.99% Developer 34 11.04% Architect 23 7.47% Data Scientist 19 6.17% Data Analyst 13 4.22% DevOps 13 4.22% IT Administrator 2 0.65% Machine Learning Engineer 2 0.65% Manager 2 0.65% Operations 2 0.65% Chief Data Officer 1 0.32% Engineering Manager 1 0.32% Intern 1 0.32% Product owner 1 0.32% Quant 1 0.32% In your day to day job, what do you use Airflow for? No. % Data processing (ETL) 298 96.75% Artificial Intelligence and Machine Learning Pipelines 90 29.22% Automating DevOps operations 64 20.78% According to the survey, most of the Airflow users are the "data" people. Moreover, 28.57% uses Airflow to both ETL and ML pipelines meaning that those two fields are somehow connected. Only five respondents use Airflow for DevOps operations only, That means that other 59 people who use Airflow for DevOps stuff use it also for ETL / ML purposes. How many active DAGs do you have in your largest Airflow instance? No. % 0-20 115 37.34% 21-40 65 21.10% 41-60 44 14.29% 61-100 28 9.09% 101-200 28 9.09% 201-300 7 2.27% 301-999 8 2.60% 1000+ 13 4.22% The majority of users do not exceed 100 active DAGs per Airflow instance. However, as we can see there are users who exceed thousands of DAGs with a maximum number 5000. What is the maximum number of tasks that you have used in one DAG? No. % 0-10 61 19.81% 11-20 60 19.48% 21-30 31 10.06% 31-40 21 6.82% 41-50 26 8.44% 51-100 36 11.69% 101-200 28 9.09% 201-500 21 6.82% 501+ 24 11.54% The given maximum number of tasks in a single DAG was 10 000 (!). The number of tasks depends on the purposes of a DAG, so it's rather hard to say if users have "simple" or "complicated" workflows. When onboarding ne

## How We Solved a Storage Problem in PostgreSQL Without Adding a Single Byte of Storage

DevFeed: [How We Solved a Storage Problem in PostgreSQL Without Adding a Single Byte of Storage](<https://devfeed.tech/articles/how-we-solved-a-storage-problem-in-postgresql-without-adding-a-single-byte-of-storage-33914.md>)

Original publisher: [Read original article](<https://hakibenita.com/how-we-solved-a-storage-problem-in-postgre-sql-without-adding-a-single-bytes-of-storage>)

Author: Haki Benita

Published: 2018-12-21T22:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [etl](<https://devfeed.tech/topics/etl.md>), [Database](<https://devfeed.tech/topics/database.md>), [hash](<https://devfeed.tech/topics/hash.md>), [Sorting](<https://devfeed.tech/topics/sorting.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [disk-space](<https://devfeed.tech/tags/disk-space.md>), [dump](<https://devfeed.tech/tags/dump.md>), [etl](<https://devfeed.tech/tags/etl.md>), [hash](<https://devfeed.tech/tags/hash.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [sql](<https://devfeed.tech/tags/sql.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article explains how an ETL task for removing duplicate binary records in PostgreSQL caused increasing temporary disk-space usage. The author reduced the sorting key by hashing the binary value with md5, lowering additional disk usage from about 30 MB to about 4 MB without adding storage.

### Source excerpt

A while back we started getting alerts in the middle of the night on low disk space. A quick investigation led us to one of our ETL tasks. Every night the task was fired to eliminate duplicate dumps, and free up some space. This is a short story about how we found our silver bullet and solved the issue without adding a single byte of storage.

## Addepar's Migration from Mongo 2.4 to Mongo 3.4

DevFeed: [Addepar's Migration from Mongo 2.4 to Mongo 3.4](<https://devfeed.tech/articles/migrating-mountains-of-mongo-data-30546.md>)

Original publisher: [Read original article](<https://medium.com/build-addepar/migrating-mountains-of-mongo-data-63e530539952?source=rss----596e43e5e150---4>)

Author: Elan Kugelmass

Published: 2017-10-24T13:11:15Z

Content type: article

Language: en

Sources: [Addepar](<https://devfeed.tech/sources/addepar.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [etl](<https://devfeed.tech/topics/etl.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Replication](<https://devfeed.tech/topics/replication.md>)

Tags: [data-pipelines](<https://devfeed.tech/tags/data-pipelines.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [replication](<https://devfeed.tech/tags/replication.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Addepar describes upgrading its database from Mongo 2.4 (TokuMX 2.0) to Mongo 3.4 as its dataset and stability and performance requirements grew. The article explains Mongo's role in the company's data ingestion and ETL pipelines and why database upgrades are risky because database guarantees and behavior can change between versions.

### Source excerpt

At Addepar, we're building the world's most versatile financial analytics engine. To feed the calculations that give our clients an unprecedented view into their portfolios, we need data -- from as many sources, vendors, and intermediaries as possible. Our market and portfolio data pipelines ingest benchmarks, security terms, accounting, and performance data from hundreds of integration partners. Behind this data pipeline is a database. And like every database, ours requires maintenance and care. Maintaining an obsolete database instance is challenging due to lack of support, inferior performance, and a dwindling developer community. As our dataset grew and we faced increased stability and performance requirements, the engineering group at Addepar decided it was time to upgrade our venerable Mongo 2.4 (TokuMX 2.0) database to the latest and greatest Mongo 3.4. Every organization has at least one database saga, and we're excited to share one of ours. Dependency management extends to databases Upgrading a database is a tricky business. Like other dependencies that support a product, databases have a tendency to fall out of date. Upgrades are deferred until that imagined future where everything is stable, clients have exhausted their feature request lists, and there's not much to do in the office other than play foosball and exchange memes. It's an understandable decision! Databases are complicated, leaky abstractions that inevitably form an implicit extension of our application logic. Their data types, atomicity guarantees, and transactionality semantics define the constraints we place on data and drive how we store application state. And because these guarantees (or lack thereof) tend to change (in ways that are sometimes undocumented!) between database versions, moving to the latest release is a risky proposition. Motivated by our need for an extremely reliable datastore that could handle complex and evolving schemas, we chose Mongo as the sole database for Addepar's

## A tour of Postgres' Foreign Data Wrappers

DevFeed: [A tour of Postgres' Foreign Data Wrappers](<https://devfeed.tech/articles/a-tour-of-postgres-foreign-data-wrappers-41190.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2016/09/11/a-tour-of-fdws/>)

Author: Map

Published: 2016-09-11T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [etl](<https://devfeed.tech/topics/etl.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-database](<https://devfeed.tech/tags/sql-database.md>)

### AI overview

A practical overview of PostgreSQL foreign data wrappers (FDWs), which connect PostgreSQL to remote systems and let users query or join that data from PostgreSQL. The article explains setup, capabilities, tradeoffs versus ETL, and briefly discusses PostgreSQL and MySQL FDWs.

### Source excerpt

SQL can be a powerful language for reporting. Whether you're just exploring some data, or generating reports that show month over month revenue growth it's the lingua franca for data analysis. But, your data isn't always in a SQL database, even then if you're using Postgres you can still likely use SQL to analyze, query, even joing with that data. Foreign data wrappers have been around for years in Postgres, but are continuing to mature and be a great option for joining disparate systems. Overview of foreign data wrappers If you're unfamiliar, foreign data wrappers, or FDW, allow you to connect from within Postgres to a remote system. Then you can query them from directly within Postgres. While there is an official Postgres FDW that ships with Postgres itself, that allows you to connect from one Postgres DB to another, there's also a broad community of others. At the core of it Postgres provides certain APIs under the covers which each FDW extension can implement. This can include the ability to map SQL to whatever makes sense for a given system, push down various operators like where clauses, and as of Postgres 9.3 can even write data. To setup a FDW you first would install the extension, then provide the connection to the remote system, setup your schema/tables, and then you're off to the races-or well ready to query. If you've got more than 2-3 databases or systems in your infrastructure, you'll often benefit from FDWs as opposed to introducing a heavyweight ETL pipeline. Don't mistake FDWs as the most performant method for joining data, but they are often the developer time efficient means of joining these data sets. Let's look at just a few of the more popular and interesting ones. Postgres FDW The Postgres one is the easiest to get started with. First you'll just enable it with CREATE EXTENSION, then you'll setup your remote server: CREATE EXTENSION postgres_fdw; CREATE SERVER core_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'core_db', por

## Postgres Tips: CTEs, .psqlrc Configuration, Query Statistics, and ETL

DevFeed: [Postgres Tips: CTEs, .psqlrc Configuration, Query Statistics, and ETL](<https://devfeed.tech/articles/my-top-10-postgres-features-and-tips-for-2016-41185.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2015/12/29/My-top-10-Postgres-features-and-tips-for-2016/>)

Author: Map

Published: 2015-12-29T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [etl](<https://devfeed.tech/topics/etl.md>)

Tags: [cte](<https://devfeed.tech/tags/cte.md>), [pg-stat-statements](<https://devfeed.tech/tags/pg-stat-statements.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [setup](<https://devfeed.tech/tags/setup.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A practical collection of Postgres tips covering Common Table Expressions for readable queries, .psqlrc customization, pg_stat_statements for identifying indexing and performance opportunities, and caution around aggregating data through ETL when working across microservices or applications.

### Source excerpt

I find during the holiday season many pick up new books, learn a new language, or brush up on some other skill in general. Here's my contribution to hopefully giving you a few new things to learn about Postgres and ideally utilize in the new year. It's not in a top 10 list as much as 10 tips and tricks you should be aware of as when you need them they become incredibly handy. But, first a shameless plug if you find any of the following helpful, consider subscribing to Postgres weekly a weekly newsletter with interesting Postgres content. 1. CTEs - Common Table Expressions CTEs allow you to do crazy awesome things like recursive queries but even the most simple form of them I don't go a day without using. Think of a CTE or commonly known as with clause as a view inside the time that query is running. This lets you more easily create readable query. Any query that's constructed that's even 100 lines long, but with 4-5 CTEs is undoubtedly going to be easier for someone new to come in and understand than a 20 line query that does the same thing. A few people like writing SQL, but no one likes reading someone else's so do them a favor and read up on CTEs. 2. Setup a .psqlrc You setup a bashrc, vimrc, etc. Why not do the same for Postgres. Some of the great things you can do: Setup pretty formatting by default with \x auto Set nulls to actually look like something \pset null ¤ Turn timing on by default \timing on Customize your prompt \set PROMPT1 '%[%033[33;1m%]%x%[%033[0m%]%[%033[1m%]%/%[%033[0m%]%R%# ' Save commonly run queries that you can run by name Here's an example of my own psqlrc: \set QUIET 1 \pset null '¤' -- Customize prompts \set PROMPT1 '%[%033[1m%][%/] # ' \set PROMPT2 '... # ' -- Show how long each query takes to execute \timing -- Use best available output format \x auto \set VERBOSITY verbose \set HISTFILE ~/.psql_history- :DBNAME \set HISTCONTROL ignoredups \set COMP_KEYWORD_CASE upper \unset QUIET 3. pg_stat_statements for where to index pg_stat_state

## Reformater avec pgloader

DevFeed: [Reformater avec pgloader](<https://devfeed.tech/articles/reformater-avec-pgloader-34446.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2011/08/reformater-avec-pgloader/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2011-08-05T09:26:00Z

Content type: tutorial

Language: fr

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [etl](<https://devfeed.tech/topics/etl.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [etl](<https://devfeed.tech/tags/etl.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

This article explains how to use pgloader's reformatting function. It presents reformatting as the Transform phase of an ETL process and describes pgloader as a simple solution for ETL needs.

### Source excerpt

Dans la série de nos articles sur pgloader, le dernier venu détaille comment utiliser la fonction de reformatage de cet outil. Dans le cadre d'utilisation d'un ETL, cela est assimilé à la phase Transform, ce qui fait de pgloader une solution simple pour vos besoins d'ETL.