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

Enrichment Transform with BigTable handler #30001

Merged
merged 45 commits into from
Jan 19, 2024

Conversation

riteshghorse
Copy link
Contributor

@riteshghorse riteshghorse commented Jan 12, 2024

This PR contains the implementation of:

  1. Enrichment transform and its tests.
  2. BigTable handler for enrichment and integration test.
  3. Default Throttler and Exponential Backoff of requests.

Cross-lang enablement and caching will be added in subsequent PRs.

Part of #29787


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Copy link
Contributor

@damccorm damccorm left a comment

Choose a reason for hiding this comment

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

Mostly looks good, though I didn't get a chance to look at the enrichment_handlers folder yet. Leaving comments for the pieces I've reviewed so far

sdks/python/apache_beam/io/requestresponse.py Outdated Show resolved Hide resolved
sdks/python/apache_beam/io/requestresponse.py Outdated Show resolved Hide resolved
sdks/python/apache_beam/io/requestresponse.py Show resolved Hide resolved
@riteshghorse
Copy link
Contributor Author

Thanks for the review! Made the suggested changes.

Copy link
Contributor

@damccorm damccorm left a comment

Choose a reason for hiding this comment

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

BigTable piece mostly LGTM as well, just have some lingering comments

@riteshghorse
Copy link
Contributor Author

Thanks! Made the changes from last review. Throttle test cases are left. Feel free to defer the review until that or up to you!

@riteshghorse
Copy link
Contributor Author

Added the throttle unit test. Bigtable improvements are remaining now.

Copy link
Contributor

@damccorm damccorm left a comment

Choose a reason for hiding this comment

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

LGTM - thanks!

@riteshghorse
Copy link
Contributor Author

Thank you for your reviews! I'll merge once the tests pass

@riteshghorse
Copy link
Contributor Author

Tests passed. Removing the trigger file

@github-actions github-actions bot removed the build label Jan 18, 2024
@riteshghorse riteshghorse merged commit 1de8454 into apache:master Jan 19, 2024
73 checks passed
@riteshghorse riteshghorse deleted the enrichment-v1-bigtable branch January 19, 2024 02:36
JayajP pushed a commit to JayajP/beam that referenced this pull request Jan 22, 2024
* enrichment v1

* add documentation

* add doc comment

* rerun

* update docs, lint

* update docs, lint

* add generic type

* add generic type

* adjust doc path

* create test row

* use request type

* use request type

* change module name

* more tests

* remove non-functional params

* lint, doc

* change types for general use

* callable type

* dict type

* update signatures

* fix unit test

* bigtable with column family, ids, rrio-throttler

* update tests for row filter

* convert handler types from dict to Row

* update tests for bigtable

* ran pydocs

* ran pydocs

* mark postcommit

* remove _test file, fix import

* enable postcommit

* add more tests

* skip tests when dependencies are not installed

* add deleted imports from last commit

* add skip test condition

* fix import order, add TooManyRequests to try-catch

* make throttler, repeater non-optional

* add exception level and tests

* correct pydoc statement

* add throttle tests

* add bigtable improvements

* default app_profile_id

* add documentation, ignore None assignment

* add to changes.md

* change test structure that throws exception, skip http test for now

* drop postcommit trigger file
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.

2 participants