A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Apache Beam Portability Support Matrix - https://s.apache.org/apache-beam-portability-support-table | ||||||||||||||||||||||||||||||||||
2 | NOTE: This table may be out of date as of 2019. | ||||||||||||||||||||||||||||||||||
3 | This spreadsheet tracks the status of portability support across SDKs and runners. The goal is to identify the gaps and implementation irregularies. | ||||||||||||||||||||||||||||||||||
4 | The table represents the 4D status of "Feature|Example x SDK x Runner x Batch|Streaming" flattened as "Feature|Example x (SDK x Runner x Batch|Streaming)". | ||||||||||||||||||||||||||||||||||
5 | |||||||||||||||||||||||||||||||||||
6 | Legend | ||||||||||||||||||||||||||||||||||
7 | Works and has pre/post-commit regression test. Yay! | ||||||||||||||||||||||||||||||||||
8 | Works, based on manual verification. Test desirable. | ||||||||||||||||||||||||||||||||||
9 | "Should work". To be verified. | ||||||||||||||||||||||||||||||||||
10 | BEAM-xxx | Partially works. Cell should contain JIRA. Comment may contain elaboration. Consider splitting the row into "works" and "doesn't work" instead. | |||||||||||||||||||||||||||||||||
11 | BEAM-xxx | Does not work. Cell should contain JIRA. | |||||||||||||||||||||||||||||||||
12 | No information. To be evaluated. | ||||||||||||||||||||||||||||||||||
13 | N/A | ||||||||||||||||||||||||||||||||||
14 | |||||||||||||||||||||||||||||||||||
15 | |||||||||||||||||||||||||||||||||||
16 | "What works?" | RUNNER x SDK x Batch|Streaming | |||||||||||||||||||||||||||||||||
17 | |||||||||||||||||||||||||||||||||||
18 | Direct (specific to each SDK and not necessarily portable) | Universal Local Runner | Flink (master) | Dataflow | Spark (master) | Samza | |||||||||||||||||||||||||||||
19 | Java | Python | Go | Java | Python | Go | Java | Python | Go | Java | Python | Go | Java | Python | Go | Java | Python | Go | |||||||||||||||||
20 | FEATURE | Batch|Streaming | Batch | Streaming | Batch only | Batch|Streaming | Batch|Streaming | Batch|Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | |||
21 | Impulse | ||||||||||||||||||||||||||||||||||
22 | ParDo | ||||||||||||||||||||||||||||||||||
23 | w/ side input | BEAM-2928 | BEAM-3286 | BEAM-3286 | BEAM-3286 | BEAM-3286 | BEAM-3286 | BEAM-3286 | BEAM-3286 | BEAM-7564 | BEAM-7564 | BEAM-7564 | BEAM-7564 | ||||||||||||||||||||||
24 | w/ multiple output | ||||||||||||||||||||||||||||||||||
25 | w/ user state | BEAM-3298 | BEAM-2917/BEAM-2915 | BEAM-2917/BEAM-3298 | BEAM-2918/BEAM-3298 | BEAM-2918/BEAM-3298 | BEAM-2902 | BEAM-2902 | BEAM-2902 | BEAM-2902 | BEAM-2902/BEAM-3298 | BEAM-2902/BEAM-3298 | BEAM-2902/BEAM-3298 | BEAM-2902/BEAM-3298 | BEAM-7564 | BEAM-7564 | BEAM-7564 | BEAM-7564 | |||||||||||||||||
26 | w/ user timers | BEAM-4680 | BEAM-4680 | BEAM-7564 | BEAM-7564 | BEAM-7564 | BEAM-7564 | ||||||||||||||||||||||||||||
27 | w/ user metrics | BEAM-5452 | BEAM-5452 | BEAM-7564 | BEAM-7564 | BEAM-7564 | BEAM-7564 | ||||||||||||||||||||||||||||
28 | Flatten | ||||||||||||||||||||||||||||||||||
29 | w/ explicit flatten | BEAM-3300 | BEAM-3300 | BEAM-3300 | BEAM-3300 | BEAM-3300 | BEAM-3300 | BEAM-3300 | |||||||||||||||||||||||||||
30 | Combine | ||||||||||||||||||||||||||||||||||
31 | w/ first-class rep | BEAM-3708 | BEAM-5453 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | |||||||||||||||||||||||||
32 | w/ lifting | BEAM-3708 | BEAM-4679 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | BEAM-4276 | |||||||||||||||||||||||||
33 | SDF | BEAM-3743 | BEAM-3301 | BEAM-3301 | BEAM-3301 | BEAM-3301 | BEAM-3301 | BEAM-3301 | BEAM-3301 | ||||||||||||||||||||||||||
34 | w/ liquid sharding | BEAM-4287 | |||||||||||||||||||||||||||||||||
35 | GBK | ||||||||||||||||||||||||||||||||||
36 | CoGBK | ||||||||||||||||||||||||||||||||||
37 | WindowInto | ||||||||||||||||||||||||||||||||||
38 | w/ sessions | BEAM-4152 | BEAM-4152 | BEAM-4152 | BEAM-4152 | BEAM-4152 | BEAM-4152 | BEAM-4152 | BEAM-4152 | ||||||||||||||||||||||||||
39 | w/ custom windowfn | ||||||||||||||||||||||||||||||||||
40 | EXAMPLE | Batch|Streaming | Batch | Streaming | Batch only | Batch | Batch | Batch | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | Batch | Streaming | |||
41 | WordCap | BEAM-7566 | BEAM-7566 | ||||||||||||||||||||||||||||||||
42 | WordCount | BEAM-7566 | BEAM-7566 | ||||||||||||||||||||||||||||||||
43 | w/ write to Sink | ||||||||||||||||||||||||||||||||||
44 | w/ write to GCS | ||||||||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||||||||
100 |