> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datazone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# PostgreSQL

> PostgreSQL is a powerful, open source object-relational database system.

# Overview

PostgreSQL is an advanced open-source relational database that supports both SQL (relational) and JSON (non-relational) querying. Datazone provides native integration with PostgreSQL databases, allowing you to easily connect and extract data from your PostgreSQL instances.

## Connection Parameters

Set on the source when you create it. Names match the API and CLI payload.

<ParamField path="name" type="string" required>
  **Name** — a unique identifier for your PostgreSQL source.
</ParamField>

<ParamField path="host" type="string" required>
  **Host** — hostname or IP address of your PostgreSQL server.
</ParamField>

<ParamField path="port" type="string" required>
  **Port** — port the server listens on. Defaults to `5432` when omitted.
</ParamField>

<ParamField path="database_name" type="string" required>
  **Database Name** — the database to connect to.
</ParamField>

<ParamField path="schema_name" type="string" default="public">
  **Schema Name** — schema that extracts resolve table names within.
</ParamField>

<ParamField path="user" type="string" required>
  **User** — username with read permission on the tables you intend to extract.
</ParamField>

<ParamField path="password" type="string" required>
  **Password** — password for the specified user. Stored encrypted.
</ParamField>

## Extract Parameters

Set per extract, in `source_parameters`. See [Shared Extract Parameters](/reference/sources/overview#shared-extract-parameters) for `mode`, `replication_key`, and `schema_mapping`.

<ParamField path="table_name" type="string" required>
  **Table Name** — the table or view to extract, resolved within the source's `schema_name`.
</ParamField>

<ParamField path="batch_size" type="integer" default="1000000">
  Rows fetched and written per batch.
</ParamField>

<ParamField path="select_clause" type="string" default="*">
  Columns to read, as a comma-separated list.
</ParamField>

<ParamField path="filter_clause" type="string">
  Row filter pushed down to PostgreSQL, written without the `WHERE` keyword — for example `status = 'active'`.
</ParamField>

## Required Permissions

The PostgreSQL user account needs the following permissions:

* `SELECT` - For reading data from tables
* `USAGE` - For accessing schemas
* `CONNECT` - For connecting to the database

## Limitations

Be aware of the following limitations when working with PostgreSQL sources:

* Supported PostgreSQL versions: 9.6 and above
* Some PostgreSQL-specific types will be converted to standard types

## Next Steps

After configuring your PostgreSQL source:

1. Create extracts to specify which tables to ingest
2. Configure scheduling for recurring extracts
3. Integrate the source into your data pipelines

For more information about working with extracts and pipelines, refer to their respective documentation sections.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.