This release is a pre-release and may not be stable for production use.
aissemble-foundation-data-lineage-python
This module serves as a generic wrapper for data lineage types, objects, and functions. While it is designed to be leveraged through the aiSSEMBLE™ ecosystem, it is not dependent on aiSSEMBLE for execution. It is intentionally designed for portability.
This Readme is intended to provide technical insight into the implementation of this package. For consumption guidance, please refer to the aiSSEMBLE Github Pages
Core Functionality
This module presently provides three main capabilities:
- Generic types to represent Data Lineage metadata
- Convenience methods for emitting Data Lineage through various mediums
- Conversion functions to transform the generic types to and from popular Data Lineage formats.
Through these capabilities, this module fulfills the need for an easy-to-use, implementation-agnostic Data Lineage interface.
Developer Guidance
- This module should display little to no dependence on any other aiSSEMBLE module. It is intentionally generic.
- Any changes to method or function signatures must be reflected in any relevant template code within
foundation-mda. - Any change or addition in functionality must be accompanied by associated automated tests.
- As we are serving as an interface to third party libraries and services, any input parameters must be exhaustively validated.
Use Custom Microprofile config properties
By default, foundation-data-lineage uses the below microprofile-config.properties for the messaging service configurations
kafka.bootstrap.servers=kafka-cluster:9093
mp.messaging.outgoing.lineage-event-out.cloud-events=false
mp.messaging.outgoing.lineage-event-out.connector=smallrye-kafka
mp.messaging.outgoing.lineage-event-out.topic=lineage-event-out
mp.messaging.outgoing.lineage-event-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.lineage-event-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
You can also use your own microprofile-config.properties file. To do that, you must provide your own property path to the code:
- Set the path of the microprofile-config.properties on your file system
# specify the new microprofile-config properties path
self.emitter.set_messaging_properties_path(string_path_to_the_property_file)
- Set the new emitter topic
add below property to the data-lineage.properties file of the appropriate docker image (e.g. spark-worker)
data.lineage.emission.topic=replace-with-your-topic
- (Optional) If you are using the v1 kafka-cluster helm chart, add the new topic to kafka-cluster values.yaml file; e.g.: add
replace-with-your-topic:1:1to the KAFKA_CREATE_TOPICS environment variable in the-deploy/src/main/resources/apps/kafka-cluster/values.yaml
NOTE:
There is a known issue with the confluent-kafka dependency that is brought in by the openlineage-client library that prevents it from installing this requirement on some arm64 environments. The problem is that librdkafka does not provide a wheel for all operating systems in the arm64 architecture, requiring that it be built from source in order for confluent-kafka to be installed. If you run into this problem, you can install it from source using the below commands:
- apt-get update
- apt install -y python3-dev git
- git clone https://github.com/confluentinc/librdkafka.git
- cd librdkafka
- ./configure --arch=aarch64
- make
- make install
Metadata
Release files for aissemble-foundation-data-lineage-python 1.7.0.dev1715242696
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aissemble_foundation_data_lineage_python-1.7.0.dev1715242696.tar.gz | 13.2 kB | Without provenance | Details for aissemble_foundation_data_lineage_python-1.7.0.dev1715242696.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aissemble_foundation_data_lineage_python-1.7.0.dev1715242696-py3-none-any.whl | Python 3 | none | any | Details for aissemble_foundation_data_lineage_python-1.7.0.dev1715242696-py3-none-any.whl |
Total release size: 31.3 kB
Release files / aissemble_foundation_data_lineage_python-1.7.0.dev1715242696.tar.gz
| Download URL | aissemble_foundation_data_lineage_python-1.7.0.dev1715242696.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d90aa43db244d61b9ecf466c6a74660ef5abc5029d76a99ca9ae74be85d7d7e0
|
|
BLAKE2b-256 checksum How to use checksums |
38f2a63e58b6b313b90b7b37ee5b81423123a646c78957a4f600b0ade19e6af1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.9.18 Linux/5.14.0-362.24.1.el9_3.x86_64
|
Release files / aissemble_foundation_data_lineage_python-1.7.0.dev1715242696-py3-none-any.whl
| Download URL | aissemble_foundation_data_lineage_python-1.7.0.dev1715242696-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a4d2e9a9d7c5e16814837999102e3e37d7ec439443305eb45dbcfadf6cf8e026
|
|
BLAKE2b-256 checksum How to use checksums |
c0b2e5c8b8b0aa997b487ccf2031b7019c5c58e0ccef051230466073886a25d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.9.18 Linux/5.14.0-362.24.1.el9_3.x86_64
|
Security for aissemble-foundation-data-lineage-python 1.7.0.dev1715242696
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.