rszper commented on code in PR #25083: URL: https://github.com/apache/beam/pull/25083#discussion_r1124976782
########## website/www/site/content/en/documentation/ml/overview.md: ########## @@ -105,3 +105,4 @@ You can find examples of end-to-end AI/ML pipelines for several use cases: * [Anomaly Detection in Beam](/documentation/ml/anomaly-detection): Demonstrates how to set up an anomaly detection pipeline that reads text from Pub/Sub in real time and then detects anomalies using a trained HDBSCAN clustering model with the RunInference API. * [Large Language Model Inference in Beam](/documentation/ml/large-language-modeling): Demonstrates a pipeline that uses RunInference to perform translation with the T5 language model which contains 11 billion parameters. * [Per Entity Training in Beam](/documentation/ml/per-entity-training): Demonstrates a pipeline that trains a Decision Tree Classifier per education level for predicting if the salary of a person is >= 50k. +* [Cross-language RunInference in Beam](/documentation/ml/multi-language-inference): Demonstrates a cross-language java pipeline that uses a custom python transform to do preprocessing, postprocessing, and inference. Review Comment: Note that this page is being changed in https://github.com/apache/beam/pull/25700/files. If that PR is merged first, this could be added either to the Data processing or to the Prediction and inference examples, depending on which you think is more appropriate. ########## website/www/site/layouts/partials/section-menu/en/documentation.html: ########## @@ -1,367 +1,368 @@ {{/* - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. See accompanying LICENSE file. -*/}} - -<li><span class="section-nav-list-main-title">Documentation</span></li> -<li><a href="/documentation">Using the Documentation</a></li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Concepts</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/basics/">Basics of the Beam model</a></li> - <li><a href="/documentation/runtime/model/">How Beam executes a pipeline</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Beam programming guide</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/">Overview</a></li> - <li><a href="/documentation/programming-guide/#creating-a-pipeline">Pipelines</a></li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">PCollections</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#pcollections">Creating a PCollection</a></li> - <li><a href="/documentation/programming-guide/#pcollection-characteristics">PCollection characteristics</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Transforms</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#applying-transforms">Applying transforms</a></li> - <li> - <span class="section-nav-list-title">Core Beam transforms</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#pardo">ParDo</a></li> - <li><a href="/documentation/programming-guide/#groupbykey">GroupByKey</a></li> - <li><a href="/documentation/programming-guide/#cogroupbykey">CoGroupByKey</a></li> - <li><a href="/documentation/programming-guide/#combine">Combine</a></li> - <li><a href="/documentation/programming-guide/#flatten">Flatten</a></li> - <li><a href="/documentation/programming-guide/#partition">Partition</a></li> - </ul> - </li> - - <li><a href="/documentation/programming-guide/#requirements-for-writing-user-code-for-beam-transforms">Requirements for user code</a></li> - <li><a href="/documentation/programming-guide/#side-inputs">Side inputs</a></li> - <li><a href="/documentation/programming-guide/#additional-outputs">Additional outputs</a></li> - <li><a href="/documentation/programming-guide/#composite-transforms">Composite transforms</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Pipeline I/O</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#pipeline-io">Using I/O transforms</a></li> - <li><a href="/documentation/io/connectors/">I/O connectors</a></li> - - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">I/O connector guides</span> - <ul class="section-nav-list"> - <li><a href="/documentation/io/built-in/parquet/">Apache Parquet I/O connector</a></li> - <li><a href="/documentation/io/built-in/hadoop/">Hadoop Input/Output Format IO</a></li> - <li><a href="/documentation/io/built-in/hcatalog/">HCatalog IO</a></li> - <li><a href="/documentation/io/built-in/google-bigquery/">Google BigQuery I/O connector</a></li> - <li><a href="/documentation/io/built-in/snowflake/">Snowflake I/O connector</a></li> - <li><a href="/documentation/io/built-in/cdap/">CDAP I/O connector</a></li> - <li><a href="/documentation/io/built-in/sparkreceiver/">Spark Receiver I/O connector</a></li> - <li><a href="/documentation/io/built-in/singlestore/">SingleStoreDB I/O connector</a></li> - </ul> - </li> - - - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Developing new I/O connectors</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/io/developing-io-overview/">Overview: Developing connectors</a></li> - <li><a href="/documentation/io/developing-io-java/">Developing connectors (Java)</a></li> - <li><a href="/documentation/io/developing-io-python/">Developing connectors (Python)</a></li> - <li><a href="/documentation/io/io-standards/">I/O Standards</a></li> - </ul> - </li> - - <li><a href="/documentation/io/testing/">Testing I/O transforms</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Schemas</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#what-is-a-schema">What is a schema</a></li> - <li><a href="/documentation/programming-guide/#schemas-for-pl-types">Schemas for programming language types</a></li> - <li><a href="/documentation/programming-guide/#schema-definition">Schema definition</a></li> - <li><a href="/documentation/programming-guide/#logical-types">Logical types</a></li> - <li><a href="/documentation/programming-guide/#creating-schemas">Creating schemas</a></li> - <li><a href="/documentation/programming-guide/#using-schemas">Using schemas</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Data encoding and type safety</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#data-encoding-and-type-safety">Data encoding basics</a></li> - <li><a href="/documentation/programming-guide/#specifying-coders">Specifying coders</a></li> - <li><a href="/documentation/programming-guide/#default-coders-and-the-coderregistry">Default coders and the CoderRegistry</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Windowing</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#windowing">Windowing basics</a></li> - <li><a href="/documentation/programming-guide/#provided-windowing-functions">Provided windowing functions</a></li> - <li><a href="/documentation/programming-guide/#setting-your-pcollections-windowing-function">Setting your PCollection’s windowing function</a></li> - <li><a href="/documentation/programming-guide/#watermarks-and-late-data">Watermarks and late data</a></li> - <li><a href="/documentation/programming-guide/#adding-timestamps-to-a-pcollections-elements">Adding timestamps to a PCollection’s elements</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Triggers</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#triggers">Trigger basics</a></li> - <li><a href="/documentation/programming-guide/#event-time-triggers">Event time triggers and the default trigger</a></li> - <li><a href="/documentation/programming-guide/#processing-time-triggers">Processing time triggers</a></li> - <li><a href="/documentation/programming-guide/#data-driven-triggers">Data-driven triggers</a></li> - <li><a href="/documentation/programming-guide/#setting-a-trigger">Setting a trigger</a></li> - <li><a href="/documentation/programming-guide/#composite-triggers">Composite triggers</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Metrics</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#metrics">Metrics basics</a></li> - <li><a href="/documentation/programming-guide/#types-of-metrics">Types of metrics</a></li> - <li><a href="/documentation/programming-guide/#querying-metrics">Querying metrics</a></li> - <li><a href="/documentation/programming-guide/#using-metrics">Using metrics in pipeline</a></li> - <li><a href="/documentation/programming-guide/#export-metrics">Export metrics</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">State and Timers</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#types-of-state">Types of state</a></li> - <li><a href="/documentation/programming-guide/#deferred-state-reads">Deferred state reads</a></li> - <li><a href="/documentation/programming-guide/#timers">Timers</a></li> - <li><a href="/documentation/programming-guide/#garbage-collecting-state">Garbage collecting state</a></li> - <li><a href="/documentation/programming-guide/#state-timers-examples">State and timers examples</a></li> - </ul> - </li> - - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Splittable DoFns</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#sdf-basics">Basics</a></li> - <li><a href="/documentation/programming-guide/#sizing-and-progress">Sizing and progress</a></li> - <li><a href="/documentation/programming-guide/#user-initiated-checkpoint">User-initiated checkpoint</a></li> - <li><a href="/documentation/programming-guide/#runner-initiated-split">Runner initiated split</a></li> - <li><a href="/documentation/programming-guide/#watermark-estimation">Watermark estimation</a></li> - <li><a href="/documentation/programming-guide/#truncating-during-drain">Truncating during drain</a></li> - <li><a href="/documentation/programming-guide/#bundle-finalization">Bundle finalization</a></li> - </ul> - </li> - - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Multi-language Pipelines</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/programming-guide/#create-x-lang-transforms">Creating cross-language transforms</a></li> - <li><a href="/documentation/programming-guide/#use-x-lang-transforms">Using cross-language transforms</a></li> - <li><a href="/documentation/programming-guide/#x-lang-transform-runner-support">Runner Support</a></li> - </ul> - </li> - <li><a href="/documentation/programming-guide/#batched-dofns">Batched DoFns</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Pipeline development lifecycle</span> - <ul class="section-nav-list"> - <li><a href="/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li> - <li><a href="/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li> - <li><a href="/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Common pipeline patterns</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/patterns/overview/">Overview</a></li> - <li><a href="/documentation/patterns/file-processing/">File processing</a></li> - <li><a href="/documentation/patterns/side-inputs/">Side inputs</a></li> - <li><a href="/documentation/patterns/pipeline-options/">Pipeline options</a></li> - <li><a href="/documentation/patterns/custom-io/">Custom I/O</a></li> - <li><a href="/documentation/patterns/custom-windows/">Custom windows</a></li> - <li><a href="/documentation/patterns/bigqueryio/">BigQueryIO</a></li> - <li><a href="/documentation/patterns/ai-platform/">AI Platform</a></li> - <li><a href="/documentation/patterns/schema/">Schema</a></li> - <li><a href="/documentation/patterns/bqml/">BigQuery ML</a></li> - <li><a href="/documentation/patterns/grouping-elements-for-efficient-external-service-calls/">Grouping elements for efficient external service calls</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">AI/ML pipelines</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/ml/overview/">Overview</a></li> - <li><a href="/documentation/ml/data-processing/">Data processing</a></li> - <li><a href="/documentation/ml/runinference-metrics/">RunInference Metrics</a></li> - <li><a href="/documentation/ml/tensorrt-runinference">TensorRT Inference</a></li> - <li><a href="/documentation/ml/model-evaluation/">Model evaluation</a></li> - <li><a href="/documentation/ml/orchestration/">Workflow Orchestration</a></li> - <li><a href="/documentation/ml/multi-model-pipelines/">Multi-model pipelines</a></li> - <li><a href="/documentation/ml/online-clustering/">Online Clustering</a></li> - <li><a href="/documentation/ml/anomaly-detection/">Anomaly Detection</a></li> - <li><a href="/documentation/ml/large-language-modeling">Large Language Model Inference in Beam</a></li> - <li><a href="/documentation/ml/per-entity-training">Per Entity Training in Beam</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Runtime systems</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/runtime/environments/">Container environments</a></li> - <li><a href="/documentation/runtime/resource-hints/">Resource hints</a></li> - <li><a href="/documentation/runtime/sdk-harness-config/">SDK Harness Configuration</a></li> - </ul> -</li> -<li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Transform catalog</span> - - <ul class="section-nav-list"> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Python</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/python/overview/">Overview</a></li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Element-wise</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/python/elementwise/filter/">Filter</a></li> - <li><a href="/documentation/transforms/python/elementwise/flatmap/">FlatMap</a></li> - <li><a href="/documentation/transforms/python/elementwise/keys/">Keys</a></li> - <li><a href="/documentation/transforms/python/elementwise/kvswap/">KvSwap</a></li> - <li><a href="/documentation/transforms/python/elementwise/map/">Map</a></li> - <li><a href="/documentation/transforms/python/elementwise/pardo/">ParDo</a></li> - <li><a href="/documentation/transforms/python/elementwise/partition/">Partition</a></li> - <li><a href="/documentation/transforms/python/elementwise/regex/">Regex</a></li> - <li><a href="/documentation/transforms/python/elementwise/reify/">Reify</a></li> - <li><a href="/documentation/transforms/python/elementwise/runinference/">RunInference</a></li> - <li><a href="/documentation/transforms/python/elementwise/tostring/">ToString</a></li> - <li><a href="/documentation/transforms/python/elementwise/values/">Values</a></li> - <li><a href="/documentation/transforms/python/elementwise/withtimestamps/">WithTimestamps</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Aggregation</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/python/aggregation/cogroupbykey/">CoGroupByKey</a></li> - <li><a href="/documentation/transforms/python/aggregation/combineglobally/">CombineGlobally</a></li> - <li><a href="/documentation/transforms/python/aggregation/combineperkey/">CombinePerKey</a></li> - <li><a href="/documentation/transforms/python/aggregation/combinevalues/">CombineValues</a></li> - <li><a href="/documentation/transforms/python/aggregation/count/">Count</a></li> - <li><a href="/documentation/transforms/python/aggregation/distinct/">Distinct</a></li> - <li><a href="/documentation/transforms/python/aggregation/groupbykey/">GroupByKey</a></li> - <li><a href="/documentation/transforms/python/aggregation/groupby/">GroupBy</a></li> - <li><a href="/documentation/transforms/python/aggregation/groupintobatches/">GroupIntoBatches</a></li> - <li><a href="/documentation/transforms/python/aggregation/latest/">Latest</a></li> - <li><a href="/documentation/transforms/python/aggregation/max/">Max</a></li> - <li><a href="/documentation/transforms/python/aggregation/min/">Min</a></li> - <li><a href="/documentation/transforms/python/aggregation/mean/">Mean</a></li> - <li><a href="/documentation/transforms/python/aggregation/sample/">Sample</a></li> - <li><a href="/documentation/transforms/python/aggregation/sum/">Sum</a></li> - <li><a href="/documentation/transforms/python/aggregation/top/">Top</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Other</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/python/other/create/">Create</a></li> - <li><a href="/documentation/transforms/python/other/flatten/">Flatten</a></li> - <li><a href="/documentation/transforms/python/other/reshuffle/">Reshuffle</a></li> - <li><a href="/documentation/transforms/python/other/windowinto/">WindowInto</a></li> - </ul> - </li> - </ul> - </li> - - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Java</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/java/overview/">Overview</a></li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Element-wise</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/java/elementwise/filter/">Filter</a></li> - <li><a href="/documentation/transforms/java/elementwise/flatmapelements/">FlatMapElements</a></li> - <li><a href="/documentation/transforms/java/elementwise/keys/">Keys</a></li> - <li><a href="/documentation/transforms/java/elementwise/kvswap/">KvSwap</a></li> - <li><a href="/documentation/transforms/java/elementwise/mapelements/">MapElements</a></li> - <li><a href="/documentation/transforms/java/elementwise/pardo/">ParDo</a></li> - <li><a href="/documentation/transforms/java/elementwise/partition/">Partition</a></li> - <li><a href="/documentation/transforms/java/elementwise/regex/">Regex</a></li> - <li><a href="/documentation/transforms/java/elementwise/reify/">Reify</a></li> - <li><a href="/documentation/transforms/java/elementwise/values/">Values</a></li> - <li><a href="/documentation/transforms/java/elementwise/tostring/">ToString</a></li> - <li><a href="/documentation/transforms/java/elementwise/withkeys/">WithKeys</a></li> - <li><a href="/documentation/transforms/java/elementwise/withtimestamps/">WithTimestamps</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Aggregation</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/java/aggregation/approximatequantiles/">ApproximateQuantiles</a></li> - <li><a href="/documentation/transforms/java/aggregation/approximateunique/">ApproximateUnique</a></li> - <li><a href="/documentation/transforms/java/aggregation/cogroupbykey/">CoGroupByKey</a></li> - <li><a href="/documentation/transforms/java/aggregation/combine/">Combine</a></li> - <li><a href="/documentation/transforms/java/aggregation/combinewithcontext/">CombineWithContext</a></li> - <li><a href="/documentation/transforms/java/aggregation/count/">Count</a></li> - <li><a href="/documentation/transforms/java/aggregation/distinct/">Distinct</a></li> - <li><a href="/documentation/transforms/java/aggregation/groupbykey/">GroupByKey</a></li> - <li><a href="/documentation/transforms/java/aggregation/groupintobatches/">GroupIntoBatches</a></li> - <li><a href="/documentation/transforms/java/aggregation/hllcount/">HllCount</a></li> - <li><a href="/documentation/transforms/java/aggregation/latest/">Latest</a></li> - <li><a href="/documentation/transforms/java/aggregation/max/">Max</a></li> - <li><a href="/documentation/transforms/java/aggregation/mean/">Mean</a></li> - <li><a href="/documentation/transforms/java/aggregation/min/">Min</a></li> - <li><a href="/documentation/transforms/java/aggregation/sample/">Sample</a></li> - <li><a href="/documentation/transforms/java/aggregation/sum/">Sum</a></li> - <li><a href="/documentation/transforms/java/aggregation/top/">Top</a></li> - </ul> - </li> - <li class="section-nav-item--collapsible"> - <span class="section-nav-list-title">Other</span> - - <ul class="section-nav-list"> - <li><a href="/documentation/transforms/java/other/create/">Create</a></li> - <li><a href="/documentation/transforms/java/other/flatten/">Flatten</a></li> - <li><a href="/documentation/transforms/java/other/passert/">PAssert</a></li> - <li><a href="/documentation/transforms/java/other/view/">View</a></li> - <li><a href="/documentation/transforms/java/other/window/">Window</a></li> - </ul> - </li> - </ul> - </li> - </ul> -</li> -<li><a href="/documentation/glossary/">Glossary</a></li> -<li><a href="https://cwiki.apache.org/confluence/display/BEAM/Apache+Beam">Beam Wiki <img src="/images/external-link-icon.png" width="14" height="14" alt="External link."></a></li> + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. See accompanying LICENSE file. + */}} + + <li><span class="section-nav-list-main-title">Documentation</span></li> + <li><a href="/documentation">Using the Documentation</a></li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Concepts</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/basics/">Basics of the Beam model</a></li> + <li><a href="/documentation/runtime/model/">How Beam executes a pipeline</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Beam programming guide</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/">Overview</a></li> + <li><a href="/documentation/programming-guide/#creating-a-pipeline">Pipelines</a></li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">PCollections</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#pcollections">Creating a PCollection</a></li> + <li><a href="/documentation/programming-guide/#pcollection-characteristics">PCollection characteristics</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Transforms</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#applying-transforms">Applying transforms</a></li> + <li> + <span class="section-nav-list-title">Core Beam transforms</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#pardo">ParDo</a></li> + <li><a href="/documentation/programming-guide/#groupbykey">GroupByKey</a></li> + <li><a href="/documentation/programming-guide/#cogroupbykey">CoGroupByKey</a></li> + <li><a href="/documentation/programming-guide/#combine">Combine</a></li> + <li><a href="/documentation/programming-guide/#flatten">Flatten</a></li> + <li><a href="/documentation/programming-guide/#partition">Partition</a></li> + </ul> + </li> + + <li><a href="/documentation/programming-guide/#requirements-for-writing-user-code-for-beam-transforms">Requirements for user code</a></li> + <li><a href="/documentation/programming-guide/#side-inputs">Side inputs</a></li> + <li><a href="/documentation/programming-guide/#additional-outputs">Additional outputs</a></li> + <li><a href="/documentation/programming-guide/#composite-transforms">Composite transforms</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Pipeline I/O</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#pipeline-io">Using I/O transforms</a></li> + <li><a href="/documentation/io/connectors/">I/O connectors</a></li> + + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">I/O connector guides</span> + <ul class="section-nav-list"> + <li><a href="/documentation/io/built-in/parquet/">Apache Parquet I/O connector</a></li> + <li><a href="/documentation/io/built-in/hadoop/">Hadoop Input/Output Format IO</a></li> + <li><a href="/documentation/io/built-in/hcatalog/">HCatalog IO</a></li> + <li><a href="/documentation/io/built-in/google-bigquery/">Google BigQuery I/O connector</a></li> + <li><a href="/documentation/io/built-in/snowflake/">Snowflake I/O connector</a></li> + <li><a href="/documentation/io/built-in/cdap/">CDAP I/O connector</a></li> + <li><a href="/documentation/io/built-in/sparkreceiver/">Spark Receiver I/O connector</a></li> + <li><a href="/documentation/io/built-in/singlestore/">SingleStoreDB I/O connector</a></li> + </ul> + </li> + + + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Developing new I/O connectors</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/io/developing-io-overview/">Overview: Developing connectors</a></li> + <li><a href="/documentation/io/developing-io-java/">Developing connectors (Java)</a></li> + <li><a href="/documentation/io/developing-io-python/">Developing connectors (Python)</a></li> + <li><a href="/documentation/io/io-standards/">I/O Standards</a></li> + </ul> + </li> + + <li><a href="/documentation/io/testing/">Testing I/O transforms</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Schemas</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#what-is-a-schema">What is a schema</a></li> + <li><a href="/documentation/programming-guide/#schemas-for-pl-types">Schemas for programming language types</a></li> + <li><a href="/documentation/programming-guide/#schema-definition">Schema definition</a></li> + <li><a href="/documentation/programming-guide/#logical-types">Logical types</a></li> + <li><a href="/documentation/programming-guide/#creating-schemas">Creating schemas</a></li> + <li><a href="/documentation/programming-guide/#using-schemas">Using schemas</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Data encoding and type safety</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#data-encoding-and-type-safety">Data encoding basics</a></li> + <li><a href="/documentation/programming-guide/#specifying-coders">Specifying coders</a></li> + <li><a href="/documentation/programming-guide/#default-coders-and-the-coderregistry">Default coders and the CoderRegistry</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Windowing</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#windowing">Windowing basics</a></li> + <li><a href="/documentation/programming-guide/#provided-windowing-functions">Provided windowing functions</a></li> + <li><a href="/documentation/programming-guide/#setting-your-pcollections-windowing-function">Setting your PCollection’s windowing function</a></li> + <li><a href="/documentation/programming-guide/#watermarks-and-late-data">Watermarks and late data</a></li> + <li><a href="/documentation/programming-guide/#adding-timestamps-to-a-pcollections-elements">Adding timestamps to a PCollection’s elements</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Triggers</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#triggers">Trigger basics</a></li> + <li><a href="/documentation/programming-guide/#event-time-triggers">Event time triggers and the default trigger</a></li> + <li><a href="/documentation/programming-guide/#processing-time-triggers">Processing time triggers</a></li> + <li><a href="/documentation/programming-guide/#data-driven-triggers">Data-driven triggers</a></li> + <li><a href="/documentation/programming-guide/#setting-a-trigger">Setting a trigger</a></li> + <li><a href="/documentation/programming-guide/#composite-triggers">Composite triggers</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Metrics</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#metrics">Metrics basics</a></li> + <li><a href="/documentation/programming-guide/#types-of-metrics">Types of metrics</a></li> + <li><a href="/documentation/programming-guide/#querying-metrics">Querying metrics</a></li> + <li><a href="/documentation/programming-guide/#using-metrics">Using metrics in pipeline</a></li> + <li><a href="/documentation/programming-guide/#export-metrics">Export metrics</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">State and Timers</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#types-of-state">Types of state</a></li> + <li><a href="/documentation/programming-guide/#deferred-state-reads">Deferred state reads</a></li> + <li><a href="/documentation/programming-guide/#timers">Timers</a></li> + <li><a href="/documentation/programming-guide/#garbage-collecting-state">Garbage collecting state</a></li> + <li><a href="/documentation/programming-guide/#state-timers-examples">State and timers examples</a></li> + </ul> + </li> + + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Splittable DoFns</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#sdf-basics">Basics</a></li> + <li><a href="/documentation/programming-guide/#sizing-and-progress">Sizing and progress</a></li> + <li><a href="/documentation/programming-guide/#user-initiated-checkpoint">User-initiated checkpoint</a></li> + <li><a href="/documentation/programming-guide/#runner-initiated-split">Runner initiated split</a></li> + <li><a href="/documentation/programming-guide/#watermark-estimation">Watermark estimation</a></li> + <li><a href="/documentation/programming-guide/#truncating-during-drain">Truncating during drain</a></li> + <li><a href="/documentation/programming-guide/#bundle-finalization">Bundle finalization</a></li> + </ul> + </li> + + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Multi-language Pipelines</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/programming-guide/#create-x-lang-transforms">Creating cross-language transforms</a></li> + <li><a href="/documentation/programming-guide/#use-x-lang-transforms">Using cross-language transforms</a></li> + <li><a href="/documentation/programming-guide/#x-lang-transform-runner-support">Runner Support</a></li> + </ul> + </li> + <li><a href="/documentation/programming-guide/#batched-dofns">Batched DoFns</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Pipeline development lifecycle</span> + <ul class="section-nav-list"> + <li><a href="/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li> + <li><a href="/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li> + <li><a href="/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">Common pipeline patterns</span> + + <ul class="section-nav-list"> + <li><a href="/documentation/patterns/overview/">Overview</a></li> + <li><a href="/documentation/patterns/file-processing/">File processing</a></li> + <li><a href="/documentation/patterns/side-inputs/">Side inputs</a></li> + <li><a href="/documentation/patterns/pipeline-options/">Pipeline options</a></li> + <li><a href="/documentation/patterns/custom-io/">Custom I/O</a></li> + <li><a href="/documentation/patterns/custom-windows/">Custom windows</a></li> + <li><a href="/documentation/patterns/bigqueryio/">BigQueryIO</a></li> + <li><a href="/documentation/patterns/ai-platform/">AI Platform</a></li> + <li><a href="/documentation/patterns/schema/">Schema</a></li> + <li><a href="/documentation/patterns/bqml/">BigQuery ML</a></li> + <li><a href="/documentation/patterns/grouping-elements-for-efficient-external-service-calls/">Grouping elements for efficient external service calls</a></li> + </ul> + </li> + <li class="section-nav-item--collapsible"> + <span class="section-nav-list-title">AI/ML pipelines</span> Review Comment: Note that this section of this page will change in https://github.com/apache/beam/pull/25700/files. If that PR is merged first, add the new topic to whichever category in the left nav corresponds to the table in the Overview page. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
