Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ZbigniewTomanek/pgvertica
Postgres proxy for Vertica
https://github.com/ZbigniewTomanek/pgvertica
Last synced: 3 months ago
JSON representation
Postgres proxy for Vertica
- Host: GitHub
- URL: https://github.com/ZbigniewTomanek/pgvertica
- Owner: ZbigniewTomanek
- License: apache-2.0
- Created: 2023-07-05T10:57:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-17T19:17:43.000Z (over 1 year ago)
- Last Synced: 2024-08-03T23:21:45.321Z (6 months ago)
- Language: Go
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-vertica - PGVertica - Proxy server to connect from BI tools using PostgreSQL connectors (Tools)
README
# PGVertica
PGVertica is a proxy server designed to be an interface to connect from BI tools to Vertica using PostgreSQL connectors.
This project utilizes the PostgreSQL wire protocol to direct data-centric queries towards a Vertica database while
managing all other queries, such as metadata retrievals from pg_catalog, INSERT operations to temporary tables, and
others, using a local PostgreSQL instance with recreated Vertica schemas metadata.This project is built on top of the existing PostgreSQL-sqlite
proxy, [postlite](https://github.com/benbjohnson/postlite).
For interfacing with Vertica, we use the `github.com/vertica/vertica-sql-go` library, while the PostgreSQL protocol
implementation is taken care of by the `github.com/jackc/pgproto3/v2` library.Supported features:
- TLS encryption
- automatic synchronization of selected schemas metadata, between Vertica and Postgres
- automatic synchronization of users and roles between Vertica and Postgres
- extensive support for prepared statements
- handling multiple datatypes using TEXT/BINARY protocol
- fetching data forward with explicitly declared cursors**Note, that this proxy does not support**
- queries that add data to Vertica - all changes will only be reflected in the local postgres instance
- `SELECT` queries which uses PostgreSQL specific syntax, which is not supported by Vertica dialect.## Supported clients
This proxy has been tested with following BI tools:
- DBeaver
- Tableau
- PowerBI
- Excel
- Apache Superset
- ArcGIS## Usage
### Build PGVertica
```bash
go build -o pgvertica ./cmd/pgvertica/main.go
```### Run tests
```bash
go test -v
```### Run PGVertica
```bash
./pgvertica
``````
Usage of ./pgvertica:
-addr string
proxy server bind address (default ":5432")
-log-level string
logger level (default "INFO")
-pgconn string
Postgres connection string
-require-password
whether this proxy should ask for password
-schemas-sync-interval-s int
time interval between schemas synchronization (default 60)
-vconn string
Vertica connection string in format vertica://user:password@addr:port/db
-x509-cert-path string
Path to SSL x509 cert file, if empty proxy won't support SSL```
To build proxy and run docker with postgres you can use. Script will fill only `--pgconn` parameter, you need to pass
the
rest of parameters, eg.:```bash
./start-proxy.sh --vconn "vertica://vuser:vpass@vertica-host:5433/dbname" --require-password
```## Contribution Policy
PGVertica is open to code contributions for bug fixes & documentation fixes only.
Features carry a long-term maintenance burden so they will not be accepted at
this time. Please [submit an issue][new-issue] if you have a feature you'd like
to request.[new-issue]: https://github.com/ZbigniewTomanek/pgvertica/issues/new