Stay organized with collections Save and categorize content based on your preferences.
To read data from Cloud Storage to Dataflow, use the Apache Beam TextIO
or AvroIO
I/O connector.
To use the TextIO
or AvroIO
connector with Cloud Storage, include the following dependency. This library provides a schema handler for "gs://"
filenames.
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
<version>${beam.version}</version>
</dependency>
Python
apache-beam[gcp]==VERSION
Go
import _ "github.com/apache/beam/sdks/v2/go/pkg/beam/io/filesystem/gcs"
For more information, see Install the Apache Beam SDK.
Enable gRPC on Apache Beam I/O connector on DataflowYou can connect to Cloud Storage using gRPC through the Apache Beam I/O connector on Dataflow. gRPC is a high performance open-source remote procedure call (RPC) framework developed by Google that you can use to interact with Cloud Storage.
To speed up your Dataflow job's read requests to Cloud Storage, you can enable the Apache Beam I/O connector on Dataflow to use gRPC.
Command line--additional-experiments=use_grpc_for_gcs
pipeline option. For information about the different pipeline options, see Optional flags.--experiments=use_grpc_for_gcs
pipeline option. For information about the different pipeline options, see Basic options.You can configure Apache Beam I/O connector on Dataflow to generate gRPC related metrics in Cloud Monitoring. The gRPC related metrics can help you to do the following:
For information about how to configure Apache Beam I/O connector on Dataflow to generate gRPC related metrics, see
Use client-side metrics. If gathering metrics isn't necessary for your use case, you can choose to opt-out of metrics collection. For instructions, see
Opt-out of client-side metrics.
ParallelismThe TextIO
and AvroIO
connectors support two levels of parallelism:
The following table shows performance metrics for reading from Cloud Storage. The workloads were run on one e2-standard2
worker, using the Apache Beam SDK 2.49.0 for Java. They did not use Runner v2.
These metrics are based on simple batch pipelines. They are intended to compare performance between I/O connectors, and are not necessarily representative of real-world pipelines. Dataflow pipeline performance is complex, and is a function of VM type, the data being processed, the performance of external sources and sinks, and user code. Metrics are based on running the Java SDK, and aren't representative of the performance characteristics of other language SDKs. For more information, see Beam IO Performance.
Best practicesAvoid using watchForNewFiles
with Cloud Storage. This approach scales poorly for large production pipelines, because the connector must keep a list of seen files in memory. The list can't be flushed from memory, which reduces the working memory of workers over time. Consider using Pub/Sub notifications for Cloud Storage instead. For more information, see File processing patterns.
If both the filename and the file contents are useful data, use the FileIO
class to read filenames. For example, a filename might contain metadata that is useful when processing the data in the file. For more information, see Accessing filenames. The FileIO
documentation also shows an example of this pattern.
The following example shows how to read from Cloud Storage.
What's nextTextIO
API documentation.Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-13 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-10-13 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.5