2021-08-01 14:27:44 -07:00
---
description: This guide will help install Postgres connector and run manually
---
# Postgres
{% hint style="info" %}
**Prerequisites**
OpenMetadata is built using Java, DropWizard, Jetty, and MySQL.
1. Python 3.7 or above
{% endhint %}
2021-08-12 13:53:29 -07:00
### Install from PyPI or Source
2021-08-01 14:27:44 -07:00
2021-08-12 13:53:29 -07:00
{% tabs %}
{% tab title="Install Using PyPI" %}
```bash
pip install 'openmetadata-ingestion[postgres]'
2021-08-14 20:13:00 +00:00
python -m spacy download en_core_web_sm
2021-08-12 13:53:29 -07:00
```
{% endtab %}
2021-08-13 15:48:38 +00:00
2021-08-12 13:53:29 -07:00
{% tab title="Build from source " %}
2021-08-01 14:27:44 -07:00
```bash
2021-08-12 13:53:29 -07:00
# checkout OpenMetadata
git clone https://github.com/open-metadata/OpenMetadata.git
cd OpenMetadata/ingestion
python3 -m venv env
source env/bin/activate
2021-08-01 14:27:44 -07:00
pip install '.[postgres]'
```
2021-08-12 13:53:29 -07:00
{% endtab %}
{% endtabs %}
2021-08-01 14:27:44 -07:00
### Run Manually
```bash
2021-08-16 07:57:20 +00:00
metadata ingest -c ./examples/workflows/postgres.json
2021-08-01 14:27:44 -07:00
```
### Configuration
{% code title="postgres.json" %}
```javascript
{
"source": {
"type": "postgres",
"config": {
2021-08-05 19:56:33 +05:30
"username": "openmetadata_user",
"password": "openmetadata_password",
2021-08-01 14:27:44 -07:00
"host_port": "localhost:5432",
"database": "pagila",
"service_name": "local_postgres",
2021-08-15 05:55:19 +00:00
"service_type": "Postgres",
2021-08-14 20:13:00 +00:00
"filter_pattern": {
"excludes": ["pg_openmetadata.*[a-zA-Z0-9]*","information_schema.*[a-zA-Z0-9]*"] }
2021-08-01 14:27:44 -07:00
}
},
...
```
{% endcode %}
1. **username** - pass the Postgres username.
2. **password** - password for the Postgres username.
3. **service\_name** - Service Name for this Postgres cluster. If you added the Postgres cluster through OpenMetadata UI, make sure the service name matches the same.
2021-08-14 20:13:00 +00:00
4. **filter\_pattern** - It contains includes, excludes options to choose which pattern of datasets you want to ingest into OpenMetadata.
2021-08-01 14:27:44 -07:00
5. **database -** Database name from where data is to be fetched.
2021-08-12 14:11:56 -07:00
### Publish to OpenMetadata
2021-08-13 15:48:38 +00:00
2021-08-14 20:13:00 +00:00
Below is the configuration to publish Postgres data into openmetadata
2021-08-12 14:11:56 -07:00
2021-08-14 20:13:00 +00:00
Add Optional `pii` processor and `metadata-rest-tables` sink along with `metadata-server` config
2021-08-12 14:11:56 -07:00
{% code title="postgres.json" %}
```javascript
{
"source": {
"type": "postgres",
"config": {
"username": "openmetadata_user",
"password": "openmetadata_password",
"host_port": "localhost:5432",
"database": "pagila",
"service_name": "local_postgres",
"service_type": "Postgres"
}
},
"processor": {
2021-08-14 00:09:51 +05:30
"type": "pii",
2021-08-12 14:11:56 -07:00
"config": {}
},
"sink": {
"type": "metadata-rest-tables",
"config": {}
},
"metadata_server": {
"type": "metadata-server",
"config": {
"api_endpoint": "http://localhost:8585/api",
"auth_provider_type": "no-auth"
}
},
"cron": {
"minute": "*/5",
"hour": null,
"day": null,
"month": null,
"day_of_week": null
}
}
2021-08-13 15:48:38 +00:00
```
2021-08-14 20:13:00 +00:00
{% endcode %}
2021-08-13 15:48:38 +00:00