Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vdk-core] Introduce post-ingest-sequence env var #682

Merged
merged 2 commits into from
Feb 1, 2022

Conversation

doks5
Copy link
Contributor

@doks5 doks5 commented Jan 27, 2022

As part of the effort to extend the Ingestion API to support plugin
chaining, we need to improve the interfaces that are to be used by
data engineers and plugin developers.

This change adds a new environment variable, INGEST_PAYLOAD_POSTPROCESS_SEQUENCE
that data engineers can use to specify a plugin/s that would deal with post-ingestion
processing tasks, such as sending telemetry, etc.

Additionally, the interfaces that plugin developers use in ingestion pre-processing
and post-processing tasks, are extended to pass payload, destination_table, target and
collection_id as read-only parameters to allow for better workflows.

Testing Done: Unit tests pass, and ran a local test ingestion data job as described in
https://github.com/vmware/versatile-data-kit/wiki/Ingesting-data-from-DB-into-Database
to verify that the existing ingestion workflows are not affected by the interface changes.

Signed-off-by: Andon Andonov andonova@vmware.com

@doks5 doks5 force-pushed the person/andonova/ingestion-design branch from b754466 to 9030974 Compare January 27, 2022 14:10
@doks5 doks5 requested a review from ivakoleva January 27, 2022 17:22
Copy link
Contributor

@ivakoleva ivakoleva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets resolve the conversations open

@doks5 doks5 self-assigned this Jan 28, 2022
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch from 9030974 to 88dbcf8 Compare January 28, 2022 13:08
@doks5
Copy link
Contributor Author

doks5 commented Jan 28, 2022

lets resolve the conversations open

Conversations resolved. Ready for review

@doks5 doks5 requested a review from ivakoleva January 28, 2022 13:11
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch from 88dbcf8 to 2cc360b Compare January 28, 2022 17:45
@doks5 doks5 requested a review from ivakoleva January 28, 2022 17:47
@doks5 doks5 requested a review from ivakoleva January 30, 2022 21:17
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch 3 times, most recently from 9d7bbdc to 0175ce5 Compare January 31, 2022 08:29
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch from 0175ce5 to 6747c80 Compare January 31, 2022 08:49
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch 2 times, most recently from dd931e4 to 3a53ab5 Compare January 31, 2022 09:12
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch 2 times, most recently from df340a1 to 1f696fc Compare January 31, 2022 10:53
projects/vdk-core/cicd/build.sh Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
projects/vdk-core/src/vdk/api/plugin/plugin_input.py Outdated Show resolved Hide resolved
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch 3 times, most recently from c656c16 to e803cc7 Compare January 31, 2022 16:04
As part of the effort to extend the Ingestion API to support plugin
chaining, we need to improve the interfaces that are to be used by
data engineers and plugin developers.

This change adds a new environment variable, `INGEST_PAYLOAD_POSTPROCESS_SEQUENCE`
that data engineers can use to specify a plugin/s that would deal with post-ingestion
processing tasks, such as sending telemetry, etc.

Additionally, the interfaces that plugin developers use in ingestion pre-processing
and post-processing tasks, are extended to pass payload, destination_table, target and
collection_id as read-only parameters to allow for better workflows.

Testing Done: Unit tests pass, and ran a local test ingestion data job as described in
https://github.com/vmware/versatile-data-kit/wiki/Ingesting-data-from-DB-into-Database
to verify that the existing ingestion workflows are not affected by the interface changes.

Signed-off-by: Andon Andonov <andonova@vmware.com>
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch 2 times, most recently from 6f12670 to 9b19e7f Compare January 31, 2022 18:55
Signed-off-by: Andon Andonov <andonova@vmware.com>
@doks5 doks5 force-pushed the person/andonova/ingestion-design branch from 9b19e7f to ad2fb22 Compare January 31, 2022 20:06
@doks5 doks5 merged commit b6624b7 into main Feb 1, 2022
@doks5 doks5 deleted the person/andonova/ingestion-design branch February 1, 2022 07:26
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682, the
signature of the ingest_payload() method was updated to accept a metadata
object as part of the ingestion flow.

Once the interface change is adopted in vdk-core, this would cause data jobs to
fail, due to missing keyword argument "metadata".

This change updates the signatures of the ingest_payload() methods, implemented
in the vdk-plugins that provide ingestion capabilities. This is done in order to
avoid the abovementioned error.

Testing Done: Not required, as no plugins currently process the metadata.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 1, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 2, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 2, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
* [vdk-core] Implementation of new ingestion interfaces

As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>

Co-authored-by: ivakoleva <ikoleva@vmware.com>
doks5 added a commit that referenced this pull request Feb 3, 2022
As part of #682
and #672 the ingestion
interfaces were extended to support ingestion plugin chaining for pre- and
post- processing operations.

This change introduces the implementation of the extended ingestion functionality.
The IngesterRouter and IngesterBase classes are extended to support the use of pre-
and post- ingestion processing plugins.

Testing Done: unit tests; functional tests to follow in a separate PR.

Signed-off-by: Andon Andonov <andonova@vmware.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants