Versatile Data Kit SDK plugin provides support for Impala database.
Project description
This plugin allows vdk-core to interface with and execute queries against an Impala database. Additionally, it can collect lineage data, assuming a lineage logger has been provided through the vdk-core configuration.
Usage
Run
pip install vdk-impala
After this, data jobs will have access to a Impala database connection, managed by Versatile Data Kit SDK.
If it is the only database plugin installed , vdk would automatically use it.
Otherwise, users need to set VDK_DB_DEFAULT_TYPE=IMPALA
as an environment variable or set 'db_default_type' option in the data job config file (config.ini).
For example
def run(job_input: IJobInput):
job_input.execute_query("select 'Hi Impala!'")
Lineage
The package can gather lineage data for all successful Impala SQL queries that have actually read or written data. Other plugins can read and optionally send the lineage data to separate system. They need to provide ILineageLogger implementation and hook this way:
@hookimpl
def vdk_initialize(context: CoreContext) -> None:
context.state.set(StoreKey[ILineageLogger]("impala-lineage-logger"), MyLogger())
Lineage is calculated based on the executed query profile. It is retrieved via the cursor by executing additional RPC request against the same Impala node that has coordinated the query right after the original query has successfully finished. See https://impala.apache.org/docs/build/html/topics/impala_logging.html for more information how profiles are stored and here https://impala.apache.org/docs/build/impala-3.1.pdf for more information about the profiles themselves.
If enabled, query plan is retrieved for every successfully executed query against Impala excluding keepalive queries like "Select 1".
Configuration
Run vdk config-help - search for those prefixed with "IMPALA_" to see what configuration options are available.
Disclaimer
This plugin is tested against a specific impala version. The version comes from the docker-compose.yaml container's impala version. For more information on the imapala version tested against please google the docker image.
Testing
Testing this plugin locally requires installing the dependencies listed in vdk-plugins/vdk-impala/requirements.txt
Run
pip install -r requirements.txt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file vdk-impala-0.4.613570906.tar.gz
.
File metadata
- Download URL: vdk-impala-0.4.613570906.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 029f354eab9b2ed40cc7a988ca8686719c1104a5d28147b4bf872b029067757b |
|
MD5 | 8083a7714213bd8fda63b44deddb33d5 |
|
BLAKE2b-256 | c541f918efdc68b06ffa5f2317f1817e7fc75f65c7a4c57318377d170435367f |