dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
dbt is the T in ELT. Organize, cleanse, denormalize, filter, rename, and pre-aggregate the raw data in your warehouse so that it's ready for analysis.
The dbt-postgres
package contains all of the code enabling dbt to work with a Postgres database. For
more information on using dbt with Postgres, consult the docs.
psycopg2-binary
vs. psycopg2
By default, dbt-postgres
installs psycopg2-binary
. This is great for development, and even testing, as it does not require any OS dependencies; it's a pre-built wheel. However, building psycopg2
from source will grant performance improvements that are desired in a production environment. In order to install psycopg2
, use the following steps:
if [[ $(pip show psycopg2-binary) ]]; then
PSYCOPG2_VERSION=$(pip show psycopg2-binary | grep Version | cut -d " " -f 2)
pip uninstall -y psycopg2-binary
pip install psycopg2==$PSYCOPG2_VERSION
fi
This ensures the version of psycopg2
will match that of psycopg2-binary
.
See CONTRIBUTING.md
for a detailed overview of contributing a code change to this adapter.
Everyone interacting in the dbt project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the dbt Code of Conduct.