keboola/db-extractor-adapter

Set of connection adapters for DB extractors.

1.15.1 2024-12-03 11:52 UTC

README

This library contains a common interface for connecting to and data extracting from, various sources:

  • It is intended for use with db-extractor-common.
  • It supports PDO and ODBC connections for now.
  • The interfaces defined in this library can be easily used to support other methods, e.g. cli BCP tool.

Main Classes

  • Interface DbConnection is an abstraction that represents a connection to the database.
  • Interface QueryResult is an abstraction that represents query result - rows returned from database.
  • Interface ExportAdapter is an abstraction which defines how the data is to be extracted.
    • Based on ExportConfig, ExportResult is generated. The rows are written to the specified CSV file.
    • By implementing this interface, it is possible to add support for CLI tools for export.
    • Abstract class BaseExportAdapter contains common code.
    • Class PdoExportAdapter implements export for PDO connection.
    • Class OdbcExportAdapter implements export for ODBC connection.
    • Class FallbackExportAdapter allows you to use multiple adapters. If one fails, then fallback adapter is used.
  • Interface QueryFactory used to generate SQL query from ExportConfig. It is used if query is not set in the config.
  • Class QueryResultCsvWriter used to write rows from the QueryResult to the specified CSV file.

Development

Clone this repository and init the workspace with following command:

git clone https://github.com/keboola/db-extractor-adapter
cd db-extractor-adapter
docker compose build
docker compose run --rm dev composer install --no-scripts

Run the test suite using this command:

docker compose run --rm dev composer tests

License

MIT licensed, see LICENSE file.