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

Document yaml pipeline options #30490

Merged
merged 1 commit into from
Mar 5, 2024
Merged

Document yaml pipeline options #30490

merged 1 commit into from
Mar 5, 2024

Conversation

damccorm
Copy link
Contributor

@damccorm damccorm commented Mar 4, 2024


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.

@damccorm
Copy link
Contributor Author

damccorm commented Mar 4, 2024

R: @Polber @robertwb

Copy link
Contributor

github-actions bot commented Mar 4, 2024

Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control

@@ -366,6 +366,8 @@ pipeline:
config:
topic: anotherPubSubTopic
format: json
options:
streaming: true
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be implicit due to the PubSub source. I don't know that we want to recommend setting it everywhere (though +1 to the section talking about options in the docs).

Copy link
Contributor

Choose a reason for hiding this comment

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

If I remember correctly, I've had issues with Pub/Sub pipelines when the streaming option is not set. It could be an issue with xlang, but I agree it should be implicit, so it may be worth looking into fixing on the xlang side rather than explicitly defining in the YAML config.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For python it is never implicit IIRC (we don't check whether sources are bounded or unbounded), so unless we're doing something special with yaml then I think we need this.

@tvalentyn to fact check me here, but I think we talked about making streaming implicit for Python but decided against it for back-compat reasons

Copy link
Contributor

Choose a reason for hiding this comment

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

Making it implicit should not be backwards incompatible, as otherwise the pipeline wouldn't run, right?

If this is the case (we should confirm), I guess it's better to add it until the template is updated with the fix at the very least.

Copy link
Contributor

Choose a reason for hiding this comment

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

@tvalentyn to fact check me here, but I think we talked about making streaming implicit for Python

I don't recall. What's the behavior in other SDKs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Making it implicit should not be backwards incompatible, as otherwise the pipeline wouldn't run, right?

The pipeline will just try to run in batch mode, which is actually probably fine for some unbounded sources (I think). It will run in batch mode, but generally functions fine AFAIK.

With that said, I don't really fully remember what our concerns with opting in to streaming first mode are. There are use cases here (example), though they're pretty dubious IMO.

I don't recall. What's the behavior in other SDKs?

Other SDKs opt in any unbounded sources to streaming pipelines.

Copy link
Contributor

@tvalentyn tvalentyn Mar 5, 2024

Choose a reason for hiding this comment

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

it makes sense to have a consistent behavior across SDKs. If we consider making the change, we should run some queries re: # of pipelines that had a pubsub/kafka/periodicimpulse step and were not streaming. most of those if any might be launched in error? But if there are users who intentionally run such jobs, we need to see if they will have an opt-out mechanism from new behavior.. There is a --streaming option, but no --batch option.

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks

@damccorm damccorm merged commit 3c46415 into master Mar 5, 2024
5 checks passed
@damccorm damccorm deleted the users/damccorm/yamlOptions branch March 5, 2024 20:14
@Abacn
Copy link
Contributor

Abacn commented Mar 6, 2024

This breaks Python PreCommit

again I think Python SDK relying on sources under website (#30198) is not good

Abacn added a commit that referenced this pull request Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants