# Getting started with Google Cloud Dataflow
[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/GoogleCloudPlatform/python-docs-samples&page=editor&open_in_editor=dataflow/README.md)
[Apache Beam](https://beam.apache.org/)
is an open source, unified model for defining both batch and streaming data-parallel processing pipelines.
This guides you through all the steps needed to run an Apache Beam pipeline in the
[Google Cloud Dataflow](https://cloud.google.com/dataflow) runner.
## Setting up your Google Cloud project
The following instructions help you prepare your Google Cloud project.
1. Install the [Cloud SDK](https://cloud.google.com/sdk/docs/).
> ℹ️ This is not required in
> [Cloud Shell](https://console.cloud.google.com/cloudshell/editor)
> since it already has the Cloud SDK pre-installed.
1. Create a new Google Cloud project and save the project ID in an environment variable.
```sh
# Save your project ID in an environment variable for ease of use later on.
export PROJECT=your-google-cloud-project-id
```
1. Setup the Cloud SDK to your GCP project.
```sh
gcloud init
```
1. [Enable billing](https://cloud.google.com/billing/docs/how-to/modify-project).
1. Enable the Dataflow API.
1. Authenticate to your Google Cloud project.
```sh
gcloud auth application-default login
```
> ℹ️ For more information on authentication, see the
> [Authentication overview](https://googleapis.dev/python/google-api-core/latest/auth.html) page.
>
> To learn more about the permissions needed for Dataflow, see the
> [Dataflow security and permissions](https://cloud.google.com/dataflow/docs/concepts/security-and-permissions) page.
## Setting up a Python development environment
For instructions on how to install Python, virtualenv, and the Cloud SDK, see the
[Setting up a Python development environment](https://cloud.google.com/python/setup)
guide.