GitHub user kennknowles opened a pull request:
https://github.com/apache/beam/pull/3195
[BEAM-2333] Key DirectRunner translators off URN
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:
- [ ] Make sure the PR title is formatted like:
`[BEAM-<Jira issue #>] Description of pull request`
- [ ] Make sure tests pass via `mvn clean verify`.
- [ ] Replace `<Jira issue #>` in the title with the actual Jira issue
number, if there is one.
- [ ] If this contribution is large, please file an Apache
[Individual Contributor License
Agreement](https://www.apache.org/licenses/icla.pdf).
---
R: @tgroh
This is a bit of a work in progress, mostly to flesh out what is needed for
a runner to work with a to-proto-and-back pipeline, and to get early feedback
since you know the direct runner as well as pipeline surgery and transform
payload translators.
- `RawPTransform` is the thing that will be built from a proto. It just
has a URN and payload, but we might add conveniences like `RawParDo` that
exposes all the expected methods. (naming TBD)
- The translator can just give a URN without actually translating, since
that might be common and shared between pre-proto and post-proto transforms.
Previously the only access to a URN was via a full translation.
- The direct runner keys its evaluators on URNs. Later, they should work
only with post-proto stuff, or otherwise be agnostic as to whether the pipeline
is pre/post proto. Even later, the overrides should be similarly ported.
TODO for this PR is to register the translators for shared bits like
`SplittableDoFn` and then work out any kinks.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/kennknowles/beam DirectRunner-URNs
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/beam/pull/3195.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3195
----
commit 9ff0440506f87981757bd3c005aa830606257e4a
Author: Kenneth Knowles <[email protected]>
Date: 2017-05-20T03:54:36Z
Centralize primitive URNs in PTransforms class
commit a472eac9abb02f8c2f3ebd6f3abe6920c6a5ae55
Author: Kenneth Knowles <[email protected]>
Date: 2017-05-20T03:55:25Z
Allow getting URN for class of transform via translator
commit d169d5a360d2663a2838766d2ce6ebda06287f37
Author: Kenneth Knowles <[email protected]>
Date: 2017-05-20T04:28:19Z
Add RawPTransform, which can just vend its URN and payload
This is the type that will be returned when a pipeline is deserialized.
This also is convenient for direct runner overrides which do not really
merit translator registrations, yet URNs need to be known in order to
key the evaluator registry off URN.
commit d45f70c83ced492d698229682e9bf909f5c02b8d
Author: Kenneth Knowles <[email protected]>
Date: 2017-05-20T04:35:43Z
Make SdkComponents public for TransformPayloadTranslator
commit ffb1ba2c350812ef00f49988e9e50e0921767319
Author: Kenneth Knowles <[email protected]>
Date: 2017-05-20T03:53:32Z
Use URNs in DirectRunner evaluator registry
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---