CINXE.COM

Implement Datastream and Dataflow for analytics  |  Google Cloud

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/webhistory"> <meta property="og:site_name" content="Google Cloud"> <meta property="og:type" content="website"><meta name="theme-color" content="#039be5"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/cloud/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics"><link rel="search" type="application/opensearchdescription+xml" title="Google Cloud" href="https://cloud.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics" /><link rel="alternate" hreflang="x-default" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics" /><link rel="alternate" hreflang="zh-Hans" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=zh-cn" /><link rel="alternate" hreflang="fr" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=fr" /><link rel="alternate" hreflang="de" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=de" /><link rel="alternate" hreflang="id" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=id" /><link rel="alternate" hreflang="it" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=it" /><link rel="alternate" hreflang="ja" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=ja" /><link rel="alternate" hreflang="ko" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=ko" /><link rel="alternate" hreflang="pt-BR" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=pt-br" /><link rel="alternate" hreflang="es-419" href="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics?hl=es-419" /><title>Implement Datastream and Dataflow for analytics &nbsp;|&nbsp; Google Cloud</title> <meta property="og:title" content="Implement Datastream and Dataflow for analytics &nbsp;|&nbsp; Google Cloud"><meta property="og:url" content="https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics"><meta property="og:image" content="https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Implement Datastream and Dataflow for analytics" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Datastream", "item": "https://cloud.google.com/datastream" },{ "@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://cloud.google.com/datastream/docs" },{ "@type": "ListItem", "position": 3, "name": "Implement Datastream and Dataflow for analytics", "item": "https://cloud.google.com/datastream/docs/implementing-datastream-dataflow-analytics" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="cloud-theme" type="article" layout="docs" free-trial display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><cloudx-track userCountry="SG"></cloudx-track> <cloudx-utils-init></cloudx-utils-init> <devsite-header keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <cloudx-tabs-nav class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs" track-type="nav" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" aria-label="Documentation, selected" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" > Documentation </a> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/tech-area-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-type="nav" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > Technology areas </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Technology areas" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/ai-ml" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/ai-ml" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> AI and ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-development" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-development" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-hosting" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-hosting" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/compute-area" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/compute-area" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Compute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/data" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/data" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Data analytics and pipelines </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/databases" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/databases" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Databases </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/dhm-cloud" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/dhm-cloud" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Distributed, hybrid, and multicloud </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/generative-ai" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/generative-ai" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/industry" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/industry" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Industry solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/networking" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/networking" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Networking </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/observability" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/observability" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Observability and monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/security" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/security" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/storage" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/cross-product-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-type="nav" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > Cross-product tools </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Cross-product tools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/access-resources" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/access-resources" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Access and resources management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/costs-usage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/costs-usage" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Costs and usage management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/devtools" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud SDK, languages, frameworks, and tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/iac" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/iac" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Infrastructure as code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/migration" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/migration" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Migration </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/" track-type="nav" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > Related sites </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Related sites" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Home </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/free" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/free" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Free Trial and Free Tier </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/architecture" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/architecture" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Architecture Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/blog" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/contact" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/contact" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Contact Sales </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/developers" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/developers" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" track-type="nav" track-metadata-eventdetail="https://developers.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/marketplace" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/marketplace/docs" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/marketplace/docs" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace Documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" track-type="nav" track-metadata-eventdetail="https://www.cloudskillsboost.google/paths" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Skills Boost </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/solutions" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/solutions" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Solution Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/support-hub" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/support-hub" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Support </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/@googlecloudtech" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Tech Youtube Channel </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </cloudx-tabs-nav> </div> <devsite-search enable-signin enable-search enable-suggestions project-name="Datastream" tenant-name="Google Cloud" project-scope="/datastream/docs" url-scoped="https://cloud.google.com/s/results/datastream/docs" > <form class="devsite-search-form" action="https://cloud.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" hidden> <div class="devsite-product-description-row"> </div> </div> <div class="devsite-doc-set-nav-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/datastream" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Datastream" > Datastream </a> </li> </ul> <cloudx-tabs-nav class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://cloud.google.com/datastream/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/datastream/docs" track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://cloud.google.com/datastream/docs/how-to" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/datastream/docs/how-to" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://cloud.google.com/datastream/docs/reference/rest" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/datastream/docs/reference/rest" track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://cloud.google.com/datastream/docs/quotas" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/datastream/docs/quotas" track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> </tab> </nav> </cloudx-tabs-nav> <div class="devsite-product-button-row"> <a href="https://cloud.google.com/contact" class="cta-button-secondary button " track-metadata-position="nav" track-name="sales" data-overflow="devsite-tabs-wrapper" track-type="contact" data-overflow-container="left" data-overflow-wrapper="tab" track-metadata-eventDetail="nav" >Contact Us</a> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary " track-type="freeTrial" data-overflow="devsite-top-logo-row" data-overflow-container="right" track-name="gcpCta" track-metadata-eventDetail="nav" track-metadata-position="nav" referrerpolicy="no-referrer-when-downgrade" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" >Start free</a> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/datastream/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/datastream/docs/how-to" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/datastream/docs/reference/rest" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/datastream/docs/quotas" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/tech-area-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technology areas" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technology areas </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Technology areas"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Technology areas"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/cross-product-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-product tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-product tools </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Cross-product tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Cross-product tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Related sites" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Related sites </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Related sites"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Related sites"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/" class="devsite-nav-title gc-analytics-event " track-name="console" track-type="globalNav" track-metadata-eventDetail="nav" referrerpolicy="no-referrer-when-downgrade" track-metadata-position="nav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Console </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="cta-button-secondary button" track-metadata-position="nav" track-name="sales" data-overflow="devsite-tabs-wrapper" track-type="contact" data-overflow-container="left" data-overflow-wrapper="tab" track-metadata-eventDetail="nav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Us" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Us </span> </a> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary" track-type="freeTrial" data-overflow="devsite-top-logo-row" data-overflow-container="right" track-name="gcpCta" track-metadata-eventDetail="nav" track-metadata-position="nav" referrerpolicy="no-referrer-when-downgrade" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start free" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start free </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Discover</span> </div></li> <li class="devsite-nav-item"><a href="/datastream/docs/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/overview" ><span class="devsite-nav-text" tooltip>Product overview</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/behavior-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/behavior-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/behavior-overview" ><span class="devsite-nav-text" tooltip>Key concepts and features</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/faq" ><span class="devsite-nav-text" tooltip>FAQ</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Get started</span> </div></li> <li class="devsite-nav-item"><a href="/datastream/docs/quickstart-replication-to-bigquery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/quickstart-replication-to-bigquery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/quickstart-replication-to-bigquery" ><span class="devsite-nav-text" tooltip>Quickstart: Replicate data to BigQuery in real time with Datastream</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/quickstart-change-streaming-to-gcs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/quickstart-change-streaming-to-gcs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/quickstart-change-streaming-to-gcs" ><span class="devsite-nav-text" tooltip>Quickstart: Stream changes to data in real time with Datastream</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/implementing-datastream-dataflow-analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/implementing-datastream-dataflow-analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/implementing-datastream-dataflow-analytics" ><span class="devsite-nav-text" tooltip>Implement Datastream and Dataflow for analytics</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Configure</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure sources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/sources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/sources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/sources" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>MySQL</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/sources-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/sources-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/sources-mysql" ><span class="devsite-nav-text" tooltip>Overview of MySQL as a source</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure a source MySQL database</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/configure-your-source-mysql-database" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-your-source-mysql-database" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-your-source-mysql-database" ><span class="devsite-nav-text" tooltip>Configuration overview</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-rds-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-rds-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-rds-mysql" ><span class="devsite-nav-text" tooltip>Amazon RDS MySQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-aurora-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-aurora-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-aurora-mysql" ><span class="devsite-nav-text" tooltip>Amazon Aurora MySQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-cloudsql-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-cloudsql-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-cloudsql-mysql" ><span class="devsite-nav-text" tooltip>Cloud SQL for MySQL</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-self-managed-mysql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-self-managed-mysql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-self-managed-mysql" ><span class="devsite-nav-text" tooltip>Self-managed MySQL database</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Oracle</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/sources-oracle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/sources-oracle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/sources-oracle" ><span class="devsite-nav-text" tooltip>Overview of Oracle as a source</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure a source Oracle database</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/configure-your-source-oracle-database" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-your-source-oracle-database" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-your-source-oracle-database" ><span class="devsite-nav-text" tooltip>Configuration overview</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-rds-oracle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-rds-oracle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-rds-oracle" ><span class="devsite-nav-text" tooltip>Amazon RDS Oracle database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-self-managed-oracle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-self-managed-oracle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-self-managed-oracle" ><span class="devsite-nav-text" tooltip>Self-managed Oracle database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-pluggable-oracle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-pluggable-oracle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-pluggable-oracle" ><span class="devsite-nav-text" tooltip>Pluggable Oracle database</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/datastream/docs/work-with-oracle-database-redo-log-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/work-with-oracle-database-redo-log-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/work-with-oracle-database-redo-log-files" ><span class="devsite-nav-text" tooltip>Work with Oracle database redo log files</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>PostgreSQL</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/sources-postgresql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/sources-postgresql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/sources-postgresql" ><span class="devsite-nav-text" tooltip>Overview of PostgreSQL as a source</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure a source PostgreSQL database</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/configure-your-source-postgresql-database" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-your-source-postgresql-database" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-your-source-postgresql-database" ><span class="devsite-nav-text" tooltip>Configuration overview</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-alloydb-psql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-alloydb-psql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-alloydb-psql" ><span class="devsite-nav-text" tooltip>AlloyDB for PostgreSQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-aurora-psql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-aurora-psql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-aurora-psql" ><span class="devsite-nav-text" tooltip>Amazon Aurora PostgreSQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-rds-psql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-rds-psql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-rds-psql" ><span class="devsite-nav-text" tooltip>Amazon RDS PostgreSQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-cloudsql-psql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-cloudsql-psql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-cloudsql-psql" ><span class="devsite-nav-text" tooltip>Cloud SQL for PostgreSQL database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-self-managed-psql" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-self-managed-psql" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-self-managed-psql" ><span class="devsite-nav-text" tooltip>Self-managed PostgreSQL database</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/datastream/docs/work-with-postgresql-partitioned-tables" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/work-with-postgresql-partitioned-tables" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/work-with-postgresql-partitioned-tables" ><span class="devsite-nav-text" tooltip>Work with PostgreSQL partitioned tables</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/work-with-postgresql-database-wal-log-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/work-with-postgresql-database-wal-log-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/work-with-postgresql-database-wal-log-files" ><span class="devsite-nav-text" tooltip>Work with PostgreSQL database WAL log files</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SQL Server</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/sources-sqlserver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/sources-sqlserver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/sources-sqlserver" ><span class="devsite-nav-text" tooltip>Overview of SQL Server as a source</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure a source SQL Server database</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/configure-your-source-sql-server-database" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-your-source-sql-server-database" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-your-source-sql-server-database" ><span class="devsite-nav-text" tooltip>Configuration overview</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-self-managed-sqlserver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-self-managed-sqlserver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-self-managed-sqlserver" ><span class="devsite-nav-text" tooltip>Self-managed SQL Server database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-amazon-rds-sqlserver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-amazon-rds-sqlserver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-amazon-rds-sqlserver" ><span class="devsite-nav-text" tooltip>Amazon RDS SQL Server database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-azure-sqlserver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-azure-sqlserver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-azure-sqlserver" ><span class="devsite-nav-text" tooltip>Azure SQL Database</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/configure-cloudsql-sqlserver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/configure-cloudsql-sqlserver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/configure-cloudsql-sqlserver" ><span class="devsite-nav-text" tooltip>Cloud SQL for SQL Server database</span></a></li></ul></div></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Configure destinations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/destinations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/destinations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/destinations" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/destination-bigquery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/destination-bigquery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/destination-bigquery" ><span class="devsite-nav-text" tooltip>Configure a BigQuery destination</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/destination-gcs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/destination-gcs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/destination-gcs" ><span class="devsite-nav-text" tooltip>Configure a Cloud Storage destination</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Create and manage</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Connectivity configurations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/network-connectivity-options" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/network-connectivity-options" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/network-connectivity-options" ><span class="devsite-nav-text" tooltip>Network connectivity options</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/private-connectivity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/private-connectivity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/private-connectivity" ><span class="devsite-nav-text" tooltip>Private connectivity</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/create-a-private-connectivity-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/create-a-private-connectivity-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/create-a-private-connectivity-configuration" ><span class="devsite-nav-text" tooltip>Create private connectivity configurations</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/view-a-private-connectivity-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/view-a-private-connectivity-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/view-a-private-connectivity-configuration" ><span class="devsite-nav-text" tooltip>View private connectivity configurations</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/delete-a-private-connectivity-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/delete-a-private-connectivity-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/delete-a-private-connectivity-configuration" ><span class="devsite-nav-text" tooltip>Delete private connectivity configurations</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Connection profiles</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/create-connection-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/create-connection-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/create-connection-profiles" ><span class="devsite-nav-text" tooltip>Create connection profiles</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/modify-connection-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/modify-connection-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/modify-connection-profiles" ><span class="devsite-nav-text" tooltip>Modify connection profiles</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/view-connection-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/view-connection-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/view-connection-profiles" ><span class="devsite-nav-text" tooltip>View connection profiles</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/delete-a-connection-profile" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/delete-a-connection-profile" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/delete-a-connection-profile" ><span class="devsite-nav-text" tooltip>Delete connection profiles</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Streams</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/datastream/docs/stream-states-and-actions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/stream-states-and-actions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/stream-states-and-actions" ><span class="devsite-nav-text" tooltip>Stream lifecycle</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/stream-concurrency-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/stream-concurrency-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/stream-concurrency-controls" ><span class="devsite-nav-text" tooltip>Stream concurrency controls</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/events-and-streams" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/events-and-streams" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/events-and-streams" ><span class="devsite-nav-text" tooltip>Events and streams</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/create-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/create-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/create-a-stream" ><span class="devsite-nav-text" tooltip>Create a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/run-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/run-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/run-a-stream" ><span class="devsite-nav-text" tooltip>Run a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/view-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/view-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/view-a-stream" ><span class="devsite-nav-text" tooltip>View a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/modify-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/modify-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/modify-a-stream" ><span class="devsite-nav-text" tooltip>Modify a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/recover-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/recover-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/recover-a-stream" ><span class="devsite-nav-text" tooltip>Recover a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/manage-backfill-for-the-objects-of-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/manage-backfill-for-the-objects-of-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/manage-backfill-for-the-objects-of-a-stream" ><span class="devsite-nav-text" tooltip>Manage backfill for the objects of a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/monitor-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/monitor-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/monitor-a-stream" ><span class="devsite-nav-text" tooltip>Monitor a stream</span></a></li><li class="devsite-nav-item"><a href="/datastream/docs/delete-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/delete-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/delete-a-stream" ><span class="devsite-nav-text" tooltip>Delete a stream</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Secure</span> </div></li> <li class="devsite-nav-item"><a href="/datastream/docs/use-cmek" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/use-cmek" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/use-cmek" ><span class="devsite-nav-text" tooltip>Use customer-managed encryption keys (CMEK)</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/access-control-with-tags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/access-control-with-tags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/access-control-with-tags" ><span class="devsite-nav-text" tooltip>Access control with tags</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Develop</span> </div></li> <li class="devsite-nav-item"><a href="/datastream/docs/unified-types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/unified-types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/unified-types" ><span class="devsite-nav-text" tooltip>Unified types mappings</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/using-datastream-apis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/using-datastream-apis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/using-datastream-apis" ><span class="devsite-nav-text" tooltip>Use Datastream APIs</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/manage-tags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/manage-tags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/manage-tags" ><span class="devsite-nav-text" tooltip>Manage tags using the API</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/manage-private-connectivity-configurations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/manage-private-connectivity-configurations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/manage-private-connectivity-configurations" ><span class="devsite-nav-text" tooltip>Manage private connectivity configurations using the API</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/manage-connection-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/manage-connection-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/manage-connection-profiles" ><span class="devsite-nav-text" tooltip>Manage connection profiles using the API</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/manage-streams" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/manage-streams" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/manage-streams" ><span class="devsite-nav-text" tooltip>Manage streams using the API</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Troubleshoot</span> </div></li> <li class="devsite-nav-item"><a href="/datastream/docs/troubleshoot-a-stream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/troubleshoot-a-stream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/troubleshoot-a-stream" ><span class="devsite-nav-text" tooltip>Troubleshoot a stream</span></a></li> <li class="devsite-nav-item"><a href="/datastream/docs/diagnose-issues" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /datastream/docs/diagnose-issues" track-type="bookNav" track-name="click" track-metadata-eventdetail="/datastream/docs/diagnose-issues" ><span class="devsite-nav-text" tooltip>Diagnose issues</span></a></li> </ul> <ul class="devsite-nav-list" menu="Technology areas" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/ai-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI and ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI and ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compute-area" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data analytics and pipelines" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data analytics and pipelines </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/databases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Databases" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Databases </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/dhm-cloud" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Distributed, hybrid, and multicloud" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Distributed, hybrid, and multicloud </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/industry" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Industry solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Industry solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/networking" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Networking" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Networking </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/observability" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Observability and monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Observability and monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Cross-product tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/access-resources" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Access and resources management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Access and resources management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/costs-usage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Costs and usage management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Costs and usage management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud SDK, languages, frameworks, and tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud SDK, languages, frameworks, and tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/iac" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Infrastructure as code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Infrastructure as code </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/migration" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Migration" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Migration </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Related sites" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/free" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Free Trial and Free Tier" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Free Trial and Free Tier </span> </a> </li> <li class="devsite-nav-item"> <a href="/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Sales" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Sales </span> </a> </li> <li class="devsite-nav-item"> <a href="/developers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace </span> </a> </li> <li class="devsite-nav-item"> <a href="/marketplace/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace Documentation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace Documentation </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Skills Boost" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Skills Boost </span> </a> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Solution Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Solution Center </span> </a> </li> <li class="devsite-nav-item"> <a href="/support-hub" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Support </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Tech Youtube Channel" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Tech Youtube Channel </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Cloud" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/datastream" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Datastream" > Datastream </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/datastream/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Datastream" > Documentation </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/datastream/docs/how-to" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Datastream" product-id="5165865" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Implement Datastream and Dataflow for analytics </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <meta name="keywords" value="docType:HowTo, content:Dataflow, analytics, Dataflow job templates, integrate with Dataflow, BigQuery analytics"> <meta name="description" content="Integrate Datastream with Dataflow job templates for near real-time analytics in BigQuery."> <html devsite> <head> <meta name="gtm_var" data-key="docType" data-value="tutorial"> <meta name="keywords" value="docType:Tutorial"> <meta name="book_path" value="/datastream/_book.yaml" /> <meta name="project_path" value="/datastream/docs/_project.yaml" /> <title>Datastream</title> </head> <body> <div class="tutorial tutorial-lesson"> <hr class="cloud-divider"> <section id="overview"> <p>Datastream supports streaming data from Oracle, MySQL and PostgreSQL databases directly into <a href="/bigquery">BigQuery</a> datasets. However, if you need more control over the stream processing logic, such as data transformation or manual setting of logical primary keys, you can integrate Datastream with Dataflow job templates.</p> <p>This tutorial shows you how Datastream integrates with <a href="/dataflow">Dataflow</a> by using Dataflow job templates to stream up-to-date materialized views in BigQuery for analytics.</p> <p>For organizations with many isolated data sources, access to enterprise data across the organization, especially in a real-time manner, can be limited and slow. This restricts the organization&#39;s ability to introspect.</p> <p>Datastream provides near real-time access to change data from various on-premises and cloud-based data sources. Datastream provides a setup experience where you don&#39;t have to do much configuration for streaming data; Datastream does this for you. Datastream also has a unified consumption API which democratizes your organization&#39;s access to the freshest available enterprise data to build integrated scenarios.</p> <p>One such scenario is transferring data from a source database into a cloud-based storage service or messaging queue. After Datastream streams the data, the data is transformed into a form that other applications and services can read. In this tutorial, Dataflow is the web service that communicates with the storage service or messaging queue to capture and process data on Google Cloud.</p> <p>You learn how to use Datastream to stream changes (data that&#39;s inserted, updated, or deleted) from a source MySQL database into a folder in a <a href="/storage">Cloud Storage</a> bucket. Then, you configure the Cloud Storage bucket to send notifications that Dataflow uses to learn about any new files containing the data changes that Datastream streams from the source database. A Dataflow job then processes the files and transfer the changes into BigQuery.</p> <p><img src="/static/datastream/docs/images/integrating-datastream-and-dataflow-overview.png" alt="integration user flow diagram"></p> </section> <section id="objectives"> <h2 id="objectives" data-text="Objectives" tabindex="-1">Objectives</h2> In this tutorial, you:</p> <ul> <li>Create a bucket in Cloud Storage. This is the destination bucket into which Datastream streams schemas, tables, and data from a source MySQL database.</li> <li>Enable Pub/Sub notifications for the Cloud Storage bucket. By doing this, you&#39;re configuring the bucket to send notifications that Dataflow uses to learn about any new files that are ready for processing. These files contain changes to data that Datastream streams from the source database into the bucket.</li> <li>Create datasets in BigQuery. BigQuery uses datasets to contain the data that it receives from Dataflow. This data represents the changes in the source database that Datastream streams into the Cloud Storage bucket.</li> <li>Create and manage connection profiles for a source database and a destination bucket in Cloud Storage. A stream in Datastream uses the information in the connection profiles to transfer data from the source database into the bucket.</li> <li>Create and start a stream. This stream transfers data, schemas, and tables from the source database into the bucket.</li> <li>Verify that Datastream transfers the data and tables associated with a schema of the source database into the bucket.</li> <li>Create a job in Dataflow. After Datastream streams data changes from the source database into the Cloud Storage bucket, notifications are sent to Dataflow about new files containing the changes. The Dataflow job processes the files and transfers the changes into BigQuery.</li> <li>Verify that Dataflow processes the files containing changes associated with this data, and transfers the changes into BigQuery. As a result, you have an end-to-end integration between Datastream and BigQuery.</li> <li>Clean up the resources that you created on Datastream, Cloud Storage, Pub/Sub, Dataflow, and BigQuery so they don&#39;t take up quota and you aren&#39;t billed for them in the future.</li> </ul> </section> <section id="costs"> <h2 id="costs" data-text="Costs" tabindex="-1">Costs</h2> <p> In this document, you use the following billable components of Google Cloud: </p> <ul> <li>Datastream</li> <li>Cloud Storage</li> <li>Pub/Sub</li> <li>Dataflow</li> <li>BigQuery</li> </ul> <p> To generate a cost estimate based on your projected usage, use the <a href="/products/calculator" track-type="commonIncludes" track-name="pricingCalculator">pricing calculator</a>. <cloudx-free-trial-eligible-content> <slot slot="eligible"> New Google Cloud users might be eligible for a <a href="/free" track-type="freeTrial" track-name="consoleLink" track-metadata-position="prerequisites" track-metadata-end-goal="signUp" target="_blank">free trial</a>. </slot> <slot slot="ineligible"> </slot> </cloudx-free-trial-eligible-content> </p> </section> <section id="prerequisites"> <h2 id="before-you-begin" data-text="Before you begin" tabindex="-1">Before you begin</h2> <ol start="1"> <cloudx-free-trial-eligible-content> <slot slot="eligible"> <li> Sign in to your Google Cloud account. If you're new to Google Cloud, <a href="https://console.cloud.google.com/freetrial" target="console" track-type="commonIncludes" track-name="createAnAccount" track-metadata-position="prereqs" track-metadata-eventdetail="https://console.cloud.google.com/freetrial" track-metadata-link-destination="https://console.cloud.google.com/freetrial"> create an account</a> to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads. </li> <li> <p>In the Google Cloud console, on the project selector page, select or create a Google Cloud project.</p> <aside class="note"><b>Note</b>: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.</aside> <p><a href="https://console.cloud.google.com/projectselector2/home/dashboard" target="console" track-type="commonIncludes" track-name="consoleLink" track-metadata-end-goal="createProject" class="button button-primary">Go to project selector</a></p> </li> <li> <p> <a href="/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project" target="_blank" track-type="commonIncludes" track-name="supportLink" track-metadata-end-goal="enableBilling" >Make sure that billing is enabled for your Google Cloud project</a>. </p> </li> </slot> <slot slot="ineligible"> <li> <p>In the Google Cloud console, on the project selector page, select or create a Google Cloud project.</p> <aside class="note"><b>Note</b>: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.</aside> <p><a href="https://console.cloud.google.com/projectselector2/home/dashboard" target="console" track-type="commonIncludes" track-name="consoleLink" track-metadata-end-goal="createProject" class="button button-primary">Go to project selector</a></p> </li> <li> <p> <a href="/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project" target="_blank" track-type="commonIncludes" track-name="supportLink" track-metadata-end-goal="enableBilling" >Make sure that billing is enabled for your Google Cloud project</a>. </p> </li> </slot> </cloudx-free-trial-eligible-content> <li>Enable the Datastream API. <p> <a class="button button-primary" href="https://console.cloud.google.com/flows/enableapi?apiid=datastream.googleapis.com" target="console" track-type="task" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="addPermissions"> Enable the API</a> </p></li> <li>Make sure that you have the Datastream Admin role granted to your user account. <p><a class="button button-primary" href="https://console.cloud.google.com/iam-admin/iam" target="console" track-type="task" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="addPermissions"> Go to the IAM page</a></p></li> <li>Make sure that you have a <a href="/datastream/docs/sources-mysql">source MySQL database</a> that Datastream can access. Also, verify that you have data, tables, and schemas in the database.</li> <li>Configure your MySQL database to allow incoming connections from Datastream public IP addresses. For a list of all Datastream regions and their associated public IP addresses, see <a href="/datastream/docs/ip-allowlists-and-regions">IP allowlists and regions</a>.</li> <li>Set up change data capture (CDC) for the source database. For more information, see <a href="/datastream/docs/configure-your-source-mysql-database">Configure a source MySQL database</a>.</li> <li><p>Make sure that you meet all <a href="/storage/docs/reporting-changes#prereqs">prerequisites</a> to enable Pub/Sub notifications for Cloud Storage.</p> <p>In this tutorial, you create a destination bucket in Cloud Storage and enable Pub/Sub notifications for the bucket. By doing this, Dataflow can receive notifications about new files that Datastream writes to the bucket. These files contain changes to data that Datastream streams from the source database into the bucket. </p></li> </ol> </section> <div id="tutorial-content"> <section class="tutorial-content"> <h2 id="requirements" data-text="Requirements" tabindex="-1">Requirements</h2> <p>Datastream offers a variety of <a href="/datastream/docs/sources">source options</a>, <a href="/datastream/docs/destination">destination options</a>, and <a href="/datastream/docs/network-connectivity-options">networking connectivity methods</a>.</p> <p>For this tutorial, we assume that you&#39;re using a standalone MySQL database and a destination Cloud Storage service. For the source database, you should be able to configure your network to add an inbound firewall rule. The source database can be on-premises or in a cloud provider. For the Cloud Storage destination, no connectivity configuration is required.</p> <p>Because we can&#39;t know the specifics of your environment, we can&#39;t provide detailed steps when it comes to your networking configuration.</p> <p>For this tutorial, you select <strong>IP allowlisting</strong> as the network connectivity method. IP allowlisting is a security feature often used for limiting and controlling access to the data in your source database to trusted users. You can use IP allowlists to create lists of trusted IP addresses or IP ranges from which your users and other Google Cloud services such as Datastream can access this data. To use IP allowlists, you must open the source database or firewall to incoming connections from Datastream.</p> <h2 id="create-cloud-storage-bucket" data-text="Create a bucket in Cloud Storage" tabindex="-1">Create a bucket in Cloud Storage</h2> <p>Create a destination bucket in Cloud Storage into which Datastream streams schemas, tables, and data from a source MySQL database.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Browser</strong> page for Cloud Storage.</p> <p><a href="https://console.cloud.google.com/storage/browser" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Browser page</a> </p></li> <li><p>Click <strong>Create bucket</strong>. The <strong>Create a bucket</strong> page appears.</p></li> <li><p>In the text field of the <strong>Name your bucket</strong> region, enter a unique name for your bucket, and then click <strong>Continue</strong>.</p></li> <li><p>Accept the default settings for each remaining region of the page. At the end each region, click <strong>Continue</strong>.</p></li> <li><p>Click <strong>Create</strong>.</p></li> </ol> <h2 id="enable-pub-sub-notifs" data-text="Enable Pub/Sub notifications for the Cloud Storage bucket" tabindex="-1">Enable Pub/Sub notifications for the Cloud Storage bucket</h2> <p>In this section, you enable Pub/Sub notifications for the Cloud Storage bucket that you created. By doing this, you&#39;re configuring the bucket to notify Dataflow of any new files that Datastream writes to the bucket. These files contain changes to data that Datastream streams from a source MySQL database into the bucket.</p> <aside class="key-point">Before enabling notifications for your bucket, make sure that you meet all <a href="/storage/docs/reporting-changes#prereqs">prerequisites</a>.</aside> <ol> <li><p>Access the Cloud Storage bucket that you created. The <strong>Bucket details</strong> page appears.</p></li> <li><p>Click <span class="material-icons" aria-hidden="true" translate="no">terminal</span> <strong>Activate Cloud Shell</strong>.</p></li> <li><p>At the prompt, enter the following command:</p> <p><code translate="no" dir="ltr">gcloud storage buckets notifications create gs://<var translate="no">bucket-name</var> --topic=my_integration_notifs --payload-format=json --object-prefix=integration/tutorial/</code></p> <aside class="note"><var translate="no">bucket-name</var> is a placeholder for the name of your Cloud Storage bucket.</aside> <aside class="note"><p>By entering this command, you're creating the <b>my_integration_notifs</b> topic in Pub/Sub. You're also configuring the Pub/Sub notifications to only listen to the Datastream output path which you define in the <a href="#create-dest-cloud-storage-connection-profile">Create a destination connection profile for Cloud Storage</a> step. Later in this procedure, you configure this topic in Pub/Sub to have notifications sent to Dataflow about changes to data that Datastream streams into your Cloud Storage bucket.</p> <p>The Pub/Sub topic captures any changes to this data. Any subscribers to this topic (such as Dataflow) receive this information.</p></aside></li> <li><p>Optional: If an <b>Authorize Cloud Shell</b> window appears, then click <b>Authorize</b>.</p></li> <li><p>Verify that you see the following lines of code:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded>Created Cloud Pub/Sub topic projects/<var translate="no">project-name</var>/topics/my_integration_notifs Created notification config projects/_/buckets/<var translate="no">bucket-name</var>/notificationConfigs/1 </pre></devsite-code> <aside class="note"><var translate="no">project-name</var> is a placeholder for the name of your Google Cloud project.</aside></li> <li><p>In the Google Cloud console, go to the <strong>Topics</strong> page for Pub/Sub.</p> <p><a href="https://console.cloud.google.com/cloudpubsub/topic/list" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Topics page</a> </p></li> <li><p>Click the <strong>my_integration_notifs</strong> topic that you created.</p></li> <li><p>On the <strong>my_integration_notifs</strong> page, scroll to the bottom of the page. Verify that the <strong>Subscriptions</strong> tab is active and a <strong>No subscriptions to display</strong> message appears.</p> <aside class="note">You're going to create a subscription for the <b>my_integration_notifs</b> topic. Apps that subscribe to this subscription, such as Dataflow, can obtain the information in the topic. This information is associated with changes to data in the source database that Datastream streams into your Cloud Storage bucket.</aside></li> <li><p>Click <strong>Create subscription</strong>.</p></li> <li><p>In the menu that appears, select <strong>Create subscription</strong>.</p></li> <li><p>In the <strong>Add subscription to topic</strong> page:</p> <ol> <li>In the <strong>Subscription ID</strong> field, enter <code translate="no" dir="ltr">my_integration_notifs_sub</code>.</li> <li>Set the <strong>Acknowledgement deadline</strong> value to <code translate="no" dir="ltr">120</code> seconds. This allows Dataflow sufficient time to acknowledge the files it has processed, and helps improve the overall performance of the Dataflow job. For more information about Pub/Sub subscription properties, see <a href="/pubsub/docs/subscription-properties">Subscription properties</a>.</li> <li>Leave all other default values on the page.</li> <li>Click <strong>Create</strong>.</li> </ol></li> </ol> <p>Later in this tutorial, you <a href="#create-dataflow-job">create a Dataflow job</a>. As part of creating this job, you assign Dataflow to be a subscriber to the <strong>my_integration_notifs_sub</strong> subscription. By doing this, Dataflow can receive notifications about new files that Datastream writes to Cloud Storage, process the files, and transfer the data changes into BigQuery.</p> <h2 id="create-bigquery-datasets" data-text="Create datasets in BigQuery" tabindex="-1">Create datasets in BigQuery</h2> <p>In this section, you create datasets in BigQuery. BigQuery uses datasets to contain the data that it receives from Dataflow. This data represents the changes in the source MySQL database that Datastream streams into your Cloud Storage bucket.</p> <ol> <li><p>Go to the <strong>SQL workspace</strong> page for BigQuery in the Google Cloud console.</p> <p><a href="https://console.cloud.google.com/bigquery" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the SQL workspace page</a> </p></li> <li><p>In the <strong>Explorer</strong> pane, next to your Google Cloud project name, click <span class="material-icons" aria-hidden="true" translate="no"> more_vert </span> <strong>View actions</strong>.</p></li> <li><p>In the menu that appears, select <strong>Create dataset</strong>.</p></li> <li><p>In the <strong>Create dataset</strong> window:</p> <ol> <li>In the <strong>Dataset ID</strong> field, enter an ID for the dataset. For this tutorial, enter <code translate="no" dir="ltr">My_integration_dataset_log</code> in the field.</li> <li>Leave all other default values in the window.</li> <li>Click <strong>Create dataset</strong>.</li> </ol> <aside class="note">Dataflow uses the <b>My_integration_dataset_log</b> dataset to stage the data changes that it receives from Datastream.</aside></li> <li><p>In the <strong>Explorer</strong> pane, next to your Google Cloud project name, click <span class="material-icons" aria-hidden="true" translate="no"> arrow_right </span> <strong>Expand node</strong>, and then verify that you see the dataset that you created.</p></li> <li><p>Use the steps in this procedure to create a second dataset: <b>My_integration_dataset_final</b>.</p> <aside class="note">The changes that are staged in the <b>My_integration_dataset_log</b> dataset are merged into the <b>My_integration_dataset_final</b> dataset to create a one-to-one replica of the tables in the source database.</aside></li> <li><p>Next to each dataset, expand <span class="material-icons" aria-hidden="true" translate="no"> arrow_right </span> <strong>Expand node</strong>.</p></li> <li><p>Verify that each dataset is empty.</p></li> </ol> <p>After Datastream streams data changes from the source database into your Cloud Storage bucket, a Dataflow job processes the files containing the changes and transfers the changes into the BigQuery datasets.</p> <h2 id="create-datastream-connection-profiles" data-text="Create connection profiles in Datastream" tabindex="-1">Create connection profiles in Datastream</h2> <p>In this section, you create connection profiles in Datastream for a source database and a destination. As part of creating the connection profiles, you select <strong>MySQL</strong> as the profile type for your source connection profile and <strong>Cloud Storage</strong> as the profile type for your destination connection profile.</p> <p>Datastream uses the information defined in the connection profiles to connect to both the source and the destination so that it can stream data from the source database into your destination bucket in Cloud Storage.</p> <h3 id="create-source-oracle-connection-profile" data-text="Create a source connection profile for your MySQL database" tabindex="-1">Create a source connection profile for your MySQL database</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Connection profiles</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/connection-profiles" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Connection profiles page</a> </p></li> <li><p>Click <strong>Create profile</strong>.</p></li> <li><p>To create a source connection profile for your MySQL database, in the <strong>Create a connection profile</strong> page, click the <strong>MySQL</strong> profile type.</p></li> <li><p>In the <strong>Define connection settings</strong> section of the <strong>Create MySQL profile</strong> page, supply the following information:</p> <ul> <li>In the <strong>Connection profile name</strong> field, enter <code translate="no" dir="ltr">My Source Connection Profile</code>.</li> <li>Keep the autogenerated <strong>Connection profile ID</strong>.</li> <li><p>Select the <strong>Region</strong> where you want to store the connection profile.</p> <aside class ="note">Connection profiles, like all resources, are saved in a region, and a stream can only use connection profiles that are stored in the same region as the stream. Region selection doesn't impact whether Datastream can connect to the source or the destination, but can impact availability if the region experiences downtime.</aside></li> <li><p>Enter <strong>Connection details</strong>:</p> <ul> <li>In the <strong>Hostname or IP</strong> field, enter a hostname or public IP address that Datastream can use to connect to the source database. You&#39;re providing a public IP address because you use <strong>IP allowlisting</strong> as the network connectivity method for this tutorial.</li> <li>In the <strong>Port</strong> field, enter the port number that&#39;s reserved for the source database. For a MySQL database, the default port is typically <code translate="no" dir="ltr">3306</code>.</li> <li>Enter a <strong>Username</strong> and <strong>Password</strong> to authenticate to your source database. </li> </ul></li> </ul></li> <li><p>In the <strong>Define connection settings</strong> section, click <strong>Continue</strong>. The <strong>Secure your connection to your source</strong> section of the <strong>Create MySQL profile</strong> page is active.</p></li> <li><p>From the <strong>Encryption type</strong> menu, select <strong>None</strong>. For more information about this menu, see <a href="/datastream/docs/create-connection-profiles#cp4mysqldb">Create a connection profile for MySQL database</a>.</p></li> <li><p>In the <strong>Secure your connection to your source</strong> section, click <strong>Continue</strong>. The <strong>Define connectivity method</strong> section of the <strong>Create MySQL profile</strong> page is active.</p></li> <li><p>In the <strong>Connectivity method</strong> drop-down, choose the networking method that you&#39;d like to use to establish connectivity between Datastream and the source database. For this tutorial, select <strong>IP allowlisting</strong> as the connectivity method.</p></li> <li><p>Configure your source database to allow incoming connections from the Datastream public IP addresses that appear.</p></li> <li><p>In the <strong>Define connectivity method</strong> section, click <strong>Continue</strong>. The <strong>Test connection profile</strong> section of the <strong>Create MySQL profile</strong> page is active.</p></li> <li><p>Click <strong>Run test</strong> to verify that the source database and Datastream can communicate with each other.</p></li> <li><p>Verify that you see the <strong>Test passed</strong> status. <aside class="note">If the test fails, you can address the problem in the appropriate part of the flow, and then return to re-test. Refer to the <a href="/datastream/docs/diagnose-issues">Diagnose issues</a> page for troubleshooting steps.</aside></p></li> <li><p>Click <strong>Create</strong>.</p></li> </ol> <h3 id="create-dest-cloud-storage-connection-profile" data-text="Create a destination connection profile for Cloud Storage" tabindex="-1">Create a destination connection profile for Cloud Storage</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Connection profiles</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/connection-profiles" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Connection profiles page</a> </p></li> <li><p>Click <strong>Create profile</strong>.</p></li> <li><p>To create a destination connection profile for Cloud Storage, in the <strong>Create a connection profile</strong> page, click the <strong>Cloud Storage</strong> profile type.</p></li> <li><p>In the <strong>Create Cloud Storage profile</strong> page, supply the following information:</p> <ul> <li>In the <strong>Connection profile name</strong> field, enter <code translate="no" dir="ltr">My Destination Connection Profile</code>.</li> <li>Keep the autogenerated <strong>Connection profile ID</strong>.</li> <li>Select the <strong>Region</strong> where you want to store the connection profile.</li> <li><p>In the <strong>Connection details</strong> pane, click <strong>Browse</strong> to select the Cloud Storage bucket that you <a href="#create-cloud-storage-bucket">created earlier in this tutorial</a>. This is the bucket into which Datastream transfers data from the source database. After making your selection, click <strong>Select</strong>.</p> <p>Your bucket appears in the <strong>Bucket name</strong> field of the <strong>Connection details</strong> pane.</p></li> <li><p>In the <strong>Connection profile path prefix</strong> field, provide a prefix for the path that you want to append to the bucket name when Datastream streams data to the destination. Make sure that Datastream writes data to a path inside the bucket, not to the bucket root folder. For this tutorial, use the path that you defined when you configured your Pub/Sub notification. Enter <code translate="no" dir="ltr">/integration/tutorial</code> in the field.</p></li> </ul></li> <li><p>Click <strong>Create</strong>.</p></li> </ol> <p>After creating a source connection profile for your MySQL database and a destination connection profile for Cloud Storage, you can use them to create a stream.</p> <h2 id="create-datastream-stream" data-text="Create a stream in Datastream" tabindex="-1">Create a stream in Datastream</h2> <p>In this section, you create a stream. This stream uses the information in the connection profiles to transfer data from a source MySQL database into a destination bucket in Cloud Storage.</p> <aside class="note"><p>Datastream comes equipped with a setup assistant to help you create a stream. This assistant consists of six panels: Get started, Define & test source, Configure source, Define destination, Configure destination, and Review & create. To populate each panel, complete the instructions in the following sections.</p></aside> <h3 id="define-stream-settings" data-text="Define settings for the stream" tabindex="-1">Define settings for the stream</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Streams</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/streams" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Streams page</a> </p></li> <li><p>Click <strong>Create stream</strong>.</p></li> <li><p>Supply the following information in the <strong>Define stream details</strong> panel of the <strong>Create stream</strong> page:</p> <ul> <li>In the <strong>Stream name</strong> field, enter <code translate="no" dir="ltr">My Stream</code>.</li> <li>Keep the autogenerated <strong>Stream ID</strong>.</li> <li>From the <strong>Region</strong> menu, select the region where you created your source and destination connection profiles.</li> <li>From the <strong>Source type</strong> menu, select the <strong>MySQL</strong> profile type.</li> <li>From the <strong>Destination type</strong> menu, select the <strong>Cloud Storage</strong> profile type.</li> </ul></li> <li><p>Review the required prerequisites that are generated automatically to reflect how your environment must be prepared for a stream. These prerequisites can include how to configure the source database and how to connect Datastream to the destination bucket in Cloud Storage.</p> <aside class="note">For more information about these prerequisites, see <a href="/datastream/docs/configure-your-source-mysql-database">Configure a source MySQL database</a>.</aside></li> <li><p>Click <strong>Continue</strong>. The <strong>Define MySQL connection profile</strong> panel of the <strong>Create stream</strong> page appears.</p></li> </ol> <h3 id="specify-source-connection-profile-info" data-text="Specify information about the source connection profile" tabindex="-1">Specify information about the source connection profile</h3> <p>In this section, you select the connection profile that you created for your source database (the source connection profile). For this tutorial, this is <strong>My Source Connection Profile</strong>.</p> <ol> <li><p>From the <strong>Source connection profile</strong> menu, select your <a href="#create-source-oracle-connection-profile">source connection profile for MySQL database</a>.</p></li> <li><p>Click <strong>Run test</strong> to verify that the source database and Datastream can communicate with each other.</p> <p>If the test fails, then the issue associated with the connection profile appears. Refer to the <a href="/datastream/docs/diagnose-issues">Diagnose issues</a> page for troubleshooting steps. Make the necessary changes to correct the issue, and then retest.</p></li> <li><p>Click <strong>Continue</strong>. The <strong>Configure stream source</strong> panel of the <strong>Create stream</strong> page appears.</p></li> </ol> <h3 id="configure-source-database-info" data-text="Configure information about the source database for the stream" tabindex="-1">Configure information about the source database for the stream</h3> <p>In this section, you configure information about the source database for the stream by specifying the tables and schemas in the source database that Datastream:</p> <ul> <li>Can transfer into the destination.</li> <li>Is restricted from transferring into the destination.</li> </ul> <p>You also determine whether Datastream backfills historical data, as well as stream ongoing changes into the destination, or stream only changes to the data.</p> <ol> <li><p>Use the <strong>Objects to include</strong> menu to specify the tables and schemas in your source database that Datastream can transfer into a folder in the destination bucket in Cloud Storage. The menu only loads if your database has up to 5,000 objects.</p> <p>For this tutorial, you want Datastream to transfer all tables and schemas. Therefore, select <strong>All tables from all schemas</strong> from the menu.</p></li> <li><p>Verify that the <b>Select objects to exclude</b> panel is set to <strong>None</strong>. You don&#39;t want to restrict Datastream from transferring any tables and schemas in your source database into Cloud Storage.</p></li> <li><p>Verify that the <b>Choose backfill mode for historical data </b> panel is set to <strong>Automatic.</strong> Datastream streams all existing data, in addition to changes to the data, from the source into the destination.</p></li> <li><p>Click <strong>Continue</strong>. The <strong>Define Cloud Storage connection profile</strong> panel of the <strong>Create stream</strong> page appears.</p></li> </ol> <h3 id="select-destination-connection-profile" data-text="Select a destination connection profile" tabindex="-1">Select a destination connection profile</h3> <p>In this section, you select the connection profile that you created for Cloud Storage (the destination connection profile). For this tutorial, this is <strong>My Destination Connection Profile</strong>.</p> <ol> <li><p>From the <strong>Destination connection profile</strong> menu, select your <a href="#create-dest-cloud-storage-connection-profile">destination connection profile for Cloud Storage</a>.</p></li> <li><p>Click <strong>Continue</strong>. The <strong>Configure stream destination</strong> panel of the <strong>Create stream</strong> page appears.</p></li> </ol> <h3 id="configure-destination-info" data-text="Configure information about the destination for the stream" tabindex="-1">Configure information about the destination for the stream</h3> <p>In this section you configure information about the destination bucket for the stream. This information includes:</p> <ul> <li>The output format of files written to Cloud Storage.</li> <li>The folder of the destination bucket into which Datastream transfers schemas, tables, and data from the source database.</li> </ul> <ol> <li><p>In the <strong>Output format</strong> field, select the format of files written to Cloud Storage. Datastream supports two output formats: Avro and JSON. For this tutorial, <strong>Avro</strong> is the file format.</p> <aside class="key-point"><p>You don't have to populate the <b>Stream path prefix</b> field. In this field, you can provide a prefix for the path that's appended to your bucket name when Datastream transfers data to the destination. This is the path of your Cloud Storage bucket into which Datastream transfers schemas, tables, and data from a source MySQL database.</p> <p>You already provided the path of <b>/integration/tutorial</b> when you <a href="#create-dest-cloud-storage-connection-profile">created the destination connection profile for Cloud Storage</a>.</p></aside></li> <li><p>Click <strong>Continue</strong>. The <strong>Review stream details and create</strong> panel of the <strong>Create stream</strong> page appears.</p></li> </ol> <h3 id="create-stream" data-text="Create the stream" tabindex="-1">Create the stream</h3> <ol> <li><p>Verify details about the stream as well as the source and destination connection profiles that the stream uses to transfer data from a source MySQL database to a destination bucket in Cloud Storage.</p></li> <li><p>To validate the stream, click <strong>Run validation</strong>. By validating a stream, Datastream checks that the source is configured properly, validates that the stream can connect to both the source and the destination, and verifies the end-to-end configuration of the stream.</p> <aside class="note"><p>If a validation check passes, then a check mark icon appears.</p><p>If a validation check doesn't pass, then an exclamation point icon and a <b>See error details</b> button appear. Click the button, and a popup window appears, explaining why the check didn't pass and information about what to do to rectify the problem. After making the appropriate corrections, click <b>Revalidate</b>.</p> <p>For more information about troubleshooting validation checks that don't pass, see <a href="/datastream/docs/diagnose-issues">Diagnose issues</a>.</p></aside></li> <li><p>After all validation checks pass, click <b>Create</b>.</p></li> <li><p>In the <b>Create stream?</b> dialog, click <b>Create</b>.</p></li> </ol> <h2 id="start-stream" data-text="Start the stream" tabindex="-1">Start the stream</h2> <p>For this tutorial, you create and start a stream separately in case the stream creation process incurs an increased load on your source database. To put off that load, you create the stream without starting it, and then start the stream when your database can handle the load.</p> <p>By starting the stream, Datastream can transfer data, schemas, and tables from the source database to the destination.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Streams</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/streams" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Streams page</a> </p></li> <li><p>Select the checkbox next to the stream that you want to start. For this tutorial, this is <strong>My Stream</strong>.</p></li> <li><p>Click <strong>Start</strong>.</p></li> <li><p>In the dialog, click <strong>Start</strong>. The status of the stream changes from <code translate="no" dir="ltr">Not started</code> to <code translate="no" dir="ltr">Starting</code> to <code translate="no" dir="ltr">Running</code>.</p> <aside class="note">It takes about 30 seconds for the stream to start running. Background resources need to start so that the stream can start.</aside></li> </ol> <p>After starting a stream, you can verify that Datastream transferred data from the source database to the destination.</p> <h2 id="verify-stream" data-text="Verify the stream" tabindex="-1">Verify the stream</h2> <p>In this section, you confirm that Datastream transfers the data from all tables of a source MySQL database into the <b>/integration/tutorial</b> folder of your Cloud Storage destination bucket.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Streams</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/streams" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Streams page</a> </p></li> <li><p>Click the stream that you created. For this tutorial, this is <strong>My Stream</strong>.</p></li> <li><p>In the <strong>Stream details</strong> page, click the <b><var translate="no">bucket-name</var>/integration/tutorial</b> link, where <var translate="no">bucket-name</var> is the name that you gave your Cloud Storage bucket. This link appears after the <strong>Destination write path</strong> field. The <strong>Bucket details</strong> page of Cloud Storage opens in a separate tab.</p> <aside class="note">The link is comprised of the name of your bucket and the folder of your bucket into which Datastream transfers schemas, tables, and data from the source database. You specified this folder to be <b>/integration/tutorial</b> when you <a href="#create-dest-cloud-storage-connection-profile">created the destination connection profile for Cloud Storage</a>.</aside></li> <li><p>Verify that you see folders that represent tables of the source database.</p></li> <li><p>Click one of the table folders and then click each subfolder until you see data that&#39;s associated with the table.</p> <aside class="note"> <p>The first folder is <code translate="no" dir="ltr">[schema]_[table]</code>, followed by folders that represent the year, month, day, hour, and minute that Datastream transferred data from the source database into a destination bucket in Cloud Storage.</p> <p>A folder is created every minute (when there's new data to write).</p> <p>A new file is created when the file size reaches 250 MB, or whenever a schema changes. If tables are partitioned, then files are created for each partition.</p> </aside></li> </ol> <h2 id="create-dataflow-job" data-text="Create a Dataflow job" tabindex="-1">Create a Dataflow job</h2> <p>In this section, you create a job in Dataflow. After Datastream streams data changes from a source MySQL database into your Cloud Storage bucket, Pub/Sub sends notifications to Dataflow about new files containing the changes. The Dataflow job processes the files and transfers the changes into BigQuery.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>Jobs</strong> page for Dataflow.</p> <p><a href="https://console.cloud.google.com/dataflow/jobs" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Jobs page</a> </p></li> <li><p>Click <strong>Create job from template</strong>.</p></li> <li><p>In the <strong>Job name</strong> field of the <strong>Create job from template</strong> page, enter a name for the Dataflow job that you&#39;re creating. For this tutorial, enter <code translate="no" dir="ltr">my-dataflow-integration-job</code> in the field.</p></li> <li><p>From the <strong>Regional endpoint</strong> menu, select the region where you want to store the job. This is the same region that you selected for the <a href="#create-source-oracle-connection-profile">source connection profile</a>, <a href="#create-dest-cloud-storage-connection-profile">destination connection profile</a>, and <a href="#create-datastream-stream">stream</a> that you created.</p></li> <li><p>From the <strong>Dataflow template</strong> menu, select the template that you&#39;re using to create the job. For this tutorial, select <strong>Datastream to BigQuery</strong>.</p> <p>After making this selection, additional fields related to this template appear.</p> <aside class="note"><p>The Datastream to BigQuery template is a streaming pipeline that reads Datastream data and replicates it into BigQuery. The template reads data from Cloud Storage using Pub/Sub notifications and replicates it into a time-partitioned BigQuery staging table. Following replication, the template executes a <code translate="no" dir="ltr">Merge</code> in BigQuery to upsert all change data capture (CDC) changes into a replica of the source table.</p> <p>To minimize the cost associated with frequent <code translate="no" dir="ltr">Merge</code> operations, we suggest starting with an initial frequency of once every 6-12 hours. After all backfills have completed and data is replicating smoothly, reduce this value to your desired frequency.</p> <p>For more information about the Datastream to BigQuery template, see <a href="/dataflow/docs/guides/templates/provided-streaming#datastream-to-bigquery">Datastream to BigQuery (Stream)</a>.</p> </aside></li> <li><p>In the <strong>File location for Datastream file output in Cloud Storage.</strong> field, enter the name of your Cloud Storage bucket using the following format: <code translate="no" dir="ltr">gs://<var translate="no">bucket-name</var></code>.</p></li> <li><p>In the <strong>Pub/Sub subscription being used in a Cloud Storage notification policy.</strong> field, enter the path that contains the name of your Pub/Sub subscription. For this tutorial, enter <code translate="no" dir="ltr">projects/<var translate="no">project-name</var>/subscriptions/my_integration_notifs_sub</code>.</p> <aside class="note"><var translate="no">project-name</var> is a placeholder for the name of your Google Cloud project. Also, you created the <b>my_integration_notifs_sub</b> subscription in the <a href="#enable-pub-sub-notifs">Enabling Pub/Sub notifications for the Cloud Storage bucket</a> section of this tutorial.</aside></li> <li><p>In the <strong>Datastream output file format (avro/json).</strong> field, enter <code translate="no" dir="ltr">avro</code> because, for this tutorial, Avro is the file format of files that Datastream writes to Cloud Storage.</p></li> <li><p>In the <strong>Name or template for the dataset to contain staging tables.</strong> field, enter <code translate="no" dir="ltr">My_integration_dataset_log</code> because Dataflow uses this dataset to stage the data changes that it receives from Datastream.</p></li> <li><p>In the <strong>Template for the dataset to contain replica tables.</strong> field, enter <code translate="no" dir="ltr">My_integration_dataset_final</code> because this is the dataset where the changes that are staged in the <b>My_integration_dataset_log</b> dataset merge to create a one-to-one replica of the tables in the source database.</p> <aside class="note">You created the <b>My_integration_dataset_log</b> and <b>My_integration_dataset_final</b> datasets in the <a href="#create-bigquery-datasets">Create datasets in BigQuery</a> section of this tutorial.</aside></li> <li><p>In the <strong>Dead letter queue directory.</strong> field, enter the path that contains the name of your Cloud Storage bucket and a folder for a dead letter queue. Make sure that you don&#39;t use a path in the root folder, and that the path is different than the one to which Datastream writes data. Any data changes that Dataflow fails to transfer into BigQuery are stored in the queue. You can fix the content in the queue so that Dataflow can reprocess it.</p> <p>For this tutorial, enter <code translate="no" dir="ltr">gs://<var translate="no">bucket-name</var>/dlq</code> in the <strong>Dead letter queue directory.</strong> field (where <var translate="no">bucket-name</var> is the name of your bucket and <b>dlq</b> is the folder for the dead letter queue).</p></li> <li><p>Click <strong>Run job</strong>.</p></li> </ol> <aside class="note">It might take several minutes for your Dataflow job to run. Background resources need to run. Also, the job has to process the files containing the data changes that it receives from Cloud Storage before it can transfer these changes into BigQuery.</aside> <h2 id="verify-integration" data-text="Verify the integration" tabindex="-1">Verify the integration</h2> <p>In the <a href="#verify-stream">Verify the stream</a> section of this tutorial, you confirmed that Datastream transferred the data from all tables of a source MySQL database into the <b>/integration/tutorial</b> folder of your Cloud Storage destination bucket.</p> <p>In this section, you verify that Dataflow processes the files containing changes associated with this data, and transfers the changes into BigQuery. As a result, you have an end-to-end integration between Datastream and BigQuery.</p> <ol> <li><p>In the Google Cloud console, go to the <strong>SQL workspace</strong> page for BigQuery.</p> <p><a href="https://console.cloud.google.com/bigquery" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the SQL workspace page</a> </p></li> <li><p>In the <strong>Explorer</strong> pane, expand the node next to the name of your Google Cloud project.</p></li> <li><p>Expand the nodes next to the <b>My_integration_dataset_log</b> and <b>My_integration_dataset_final</b> datasets.</p></li> <li><p>Verify that each dataset now contains data. This confirms that Dataflow processed the files containing changes associated with the data that Datastream streamed into Cloud Storage, and transferred these changes into BigQuery.</p></li> </ol> </section> </div> <section id="cleanup"> <h2 id="clean-up" data-text="Clean up" tabindex="-1">Clean up</h2> <p>To avoid incurring charges to your Google Cloud account for the resources used in this tutorial, use the Google Cloud console to do the following:</p> <ul> <li>Delete your project, Datastream stream, and Datastream connection profiles.</li> <li>Stop the Dataflow job.</li> <li>Delete the BigQuery datasets, Pub/Sub topic and subscription, and Cloud Storage bucket.</li> </ul> <p>By cleaning up the resources that you created on Datastream, Dataflow, BigQuery, Pub/Sub, and Cloud Storage, you prevent the resources from taking up quota and you aren&#39;t billed for them in the future.</p> <h3 id="delete-your-project" data-text="Delete your project" tabindex="-1">Delete your project</h3> <p>The easiest way to eliminate billing is to delete the project that you created for this tutorial.</p> <aside class="caution"><p>Deleting a project has the following effects:</p> <ul> <li><b>Everything in the project is deleted.</b> If you used an existing project for this tutorial, then when you delete it, you also delete any other work you've done in the project.</li> <li><b>Custom project IDs are lost.</b> When you created this project, you might have created a custom project ID that you want to use in the future. To preserve the URLs that use the project ID, such as the <code translate="no" dir="ltr"><b>appspot.com</b></code> URL, delete selected resources inside the project instead of deleting the whole project.</li></ul> <p>If you plan to explore multiple tutorials and quickstarts, then reusing projects can help you avoid exceeding project quota limits.</p></aside> <ol> <li><p>In the Google Cloud console, go to the <strong>Manage resources</strong> page.</p> <p><a href="https://console.cloud.google.com/cloud-resource-manager" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Manage resources page</a> </p></li> <li><p>In the project list, select the project that you want to delete, and then click <strong>Delete</strong>.</p></li> <li><p>To delete the project, in the dialog, type the project ID, and then click <strong>Shut down</strong>.</p></li> </ol> <h3 id="delete-the-stream" data-text="Delete the stream" tabindex="-1">Delete the stream</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Streams</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/streams" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Streams page</a> </p></li> <li><p>Click the stream that you want to delete. For this tutorial, this is <strong>My Stream</strong>.</p></li> <li><p>Click <strong>Pause</strong>.</p></li> <li><p>In the dialog, click <strong>Pause</strong>.</p></li> <li><p>In the <strong>Stream status</strong> pane of the <strong>Stream details</strong> page, verify that the status of the stream is <code translate="no" dir="ltr">Paused</code>.</p> <aside class="note">You pause the stream before deleting it to make sure that all in-flight data transfers from the source database to the destination.</aside></li> <li><p>Click <strong>Delete</strong>.</p></li> <li><p>In the dialog, in the text field, enter <code translate="no" dir="ltr">Delete</code>, and then click <strong>Delete</strong>.</p></li> </ol> <h3 id="delete-the-connection-profiles" data-text="Delete the connection profiles" tabindex="-1">Delete the connection profiles</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Connection profiles</strong> page for Datastream.</p> <p><a href="https://console.cloud.google.com/datastream/connection-profiles" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Connection profiles page</a> </p></li> <li><p>Select the checkbox for each connection profile that you want to delete: <strong>My Source Connection Profile</strong> and <strong>My Destination Connection Profile</strong>.</p></li> <li><p>Click <strong>Delete</strong>.</p></li> <li><p>In the dialog, click <strong>Delete</strong>.</p></li> </ol> <h3 id="stop-the-dataflow-job" data-text="Stop the Dataflow job" tabindex="-1">Stop the Dataflow job</h3> <aside class="key-point">You can't delete a job in Dataflow. However, you can stop a job so that the job no longer processes files containing data changes that stream into the Cloud Storage bucket or transfers the data changes into BigQuery.</aside> <ol> <li><p>In the Google Cloud console, go to the <strong>Jobs</strong> page for Dataflow.</p> <p><a href="https://console.cloud.google.com/dataflow/jobs" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Jobs page</a> </p></li> <li><p>Click the job that you want to stop. For this tutorial, this is <strong>my-dataflow-integration-job</strong>.</p></li> <li><p>Click <strong>Stop</strong>.</p></li> <li><p>In the <strong>Stop job</strong> dialog, select the <strong>Drain</strong> option, and then click <strong>Stop job</strong>.</p> <aside class="note">Dataflow finishes processing any remaining buffered data so that all in-flight" data transfers into BigQuery before the job stops.</aside></li> </ol> <h3 id="delete-the-bigquery-datasets" data-text="Delete the BigQuery datasets" tabindex="-1">Delete the BigQuery datasets</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>SQL workspace</strong> page for BigQuery.</p> <p><a href="https://console.cloud.google.com/bigquery" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the SQL workspace page</a> </p></li> <li><p>In the <strong>Explorer</strong> pane, expand the node next to your Google Cloud project name.</p></li> <li><p>Click the <strong>View actions</strong> button to the right of one of the datasets that you created in <a href="#create-bigquery-datasets">Create datasets in BigQuery</a>. This button looks like a vertical ellipsis.</p> <p>For this tutorial, click the <strong>View actions</strong> button to the right of <strong>My_integration_dataset_log</strong>.</p></li> <li><p>Select <strong>Delete</strong> from the drop-down menu that appears.</p></li> <li><p>In the <strong>Delete dataset?</strong> dialog, enter <code translate="no" dir="ltr">delete</code> in the text field, and then click <strong>Delete</strong>.</p></li> <li><p>Repeat the steps in this procedure to delete the second dataset that you created: <strong>My_integration_dataset_final</strong>.</p></li> </ol> <h3 id="delete-pub-sub-subscription-and-topic" data-text="Delete the Pub/Sub subscription and topic" tabindex="-1">Delete the Pub/Sub subscription and topic</h3> <ol> <li><p>In the Google Cloud console, go to the <strong>Subscriptions</strong> page for Pub/Sub.</p> <p><a href="https://console.cloud.google.com/cloudpubsub/subscription/list" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Subscriptions page</a> </p></li> <li><p>Click the checkbox next to the subscription that you want to delete. For this tutorial, click the checkbox next to the <strong>my_integration_notifs_sub</strong> subscription.</p></li> <li><p>Click <strong>Delete</strong>.</p></li> <li><p>In the <strong>Delete subscription</strong> dialog, click <strong>Delete</strong>.</p></li> <li><p>In the Google Cloud console, go to the <strong>Topics</strong> page for Pub/Sub.</p> <p><a href="https://console.cloud.google.com/cloudpubsub/topic/list" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Topics page</a> </p></li> <li><p>Click the checkbox next to the <strong>my_integration_notifs</strong> topic.</p></li> <li><p>Click <strong>Delete</strong>.</p></li> <li><p>In the <strong>Delete topic</strong> dialog, enter <code translate="no" dir="ltr">delete</code> in the text field, and then click <strong>Delete</strong>.</p></li> </ol> <h3 id="delete-your-cloud-storage-bucket" data-text="Delete your Cloud Storage bucket" tabindex="-1">Delete your Cloud Storage bucket</h3> <ol> <li><p>In the Google Cloud console, go to the <b>Browser</b> page for Cloud Storage.</p> <p><a href="https://console.cloud.google.com/storage/browser" target="console" track-name="consoleLink" track-type="tutorial" class="button button-primary">Go to the Browser page</a> </p></li> <li><p>Select the checkbox next to your bucket.</p></li> <li><p>Click <b>Delete</b>.</p></li> <li><p>In the dialog, enter <code translate="no" dir="ltr">Delete</code> in the text field, and then click <strong>Delete</strong>.</p></li> </ol> </section> <section id="whatsnext"> <h2 id="whats-next" data-text="What's next" tabindex="-1">What's next</h2> <ul> <li>Learn more about <a href="/datastream/docs">Datastream</a>.</li> <li><a href="/bigquery/docs/streaming-data-into-bigquery">Use the legacy streaming API</a> to perform advanced capabilities with streaming data into BigQuery.</li> <li>Try out other Google Cloud features for yourself. Have a look at our <a href="https://cloud.google.com/docs/tutorials" target="blank">tutorials</a>.</li> </ul> </section> <section id="freetrial"> </section> </div> <devsite-hats-survey class="nocontent" hats-id="Nd7nTix2o0eU5NUYprb0ThtUc5jf" listnr-id="83405"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Datastream" product-id="5165865" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2025-02-14 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Datastream" product-id="5165865" bucket="Documentation" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/super_cloud.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["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-02-14 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Why Google</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/why-google-cloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventDetail="cloud.google.com/why-google-cloud/"track-metadata-child_headline="why google"track-name="choosing google cloud"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"> Choosing Google Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/trust-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-type="footer link"track-metadata-eventDetail="cloud.google.com/security/"track-metadata-module="footer"track-metadata-position="footer"track-name="trust and security"track-metadata-child_headline="why google"> Trust and security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/modern-infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-name="modern infrastructure cloud"track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="why google"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/modern-infrastructure/"> Modern Infrastructure Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/multicloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-name="multicloud"track-metadata-child_headline="why google"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/multicloud/"> Multicloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="why google"track-metadata-eventDetail="cloud.google.com/infrastructure/"track-metadata-module="footer"track-name="global infrastructure"> Global infrastructure </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/customers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-eventDetail="cloud.google.com/customers/"track-name="customers and case studies"track-metadata-child_headline="why google"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"> Customers and case studies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/analyst-reports/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-type="footer link"track-name="analyst reports"track-metadata-position="footer"track-metadata-child_headline="why google"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/analyst-reports/"> Analyst reports </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/whitepapers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-module="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/whitepapers/"track-metadata-child_headline="why google"track-metadata-position="footer"track-name="whitepapers"> Whitepapers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/blog/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-name="blog"track-metadata-position="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/blog/"track-metadata-child_headline="engage"track-metadata-module="footer"> Blog </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/pricing/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-module="footer"track-name="google cloud pricing"track-type="footer link"track-metadata-eventDetail="cloud.google.com/pricing/"track-metadata-position="footer"track-metadata-child_headline="products and pricing"> Google Cloud pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//workspace.google.com/pricing.html" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-child_headline="products and pricing"track-type="footer link"track-metadata-module="footer"track-name="google workspace pricing"track-metadata-eventDetail="workspace.google.com/pricing.html"track-metadata-position="footer"target="_blank"> Google Workspace pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/products/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-position="footer"track-name="see all products"track-metadata-eventDetail="cloud.google.com/products/"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="products and pricing"> See all products </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Solutions</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/solutions/infrastructure-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="infrastructure modernization"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/infrastructure-modernization/"track-type="footer link"track-metadata-child_headline="solutions"track-metadata-module="footer"> Infrastructure modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/databases/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-module="footer"track-name="databases"track-type="footer link"track-metadata-eventDetail="cloud.google.com/solutions/databases"track-metadata-position="footer"track-metadata-child_headline="solutions"> Databases </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/application-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/application-modernization/"track-type="footer link"track-metadata-position="footer"track-name="application development"track-metadata-child_headline="solutions"> Application modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/smart-analytics/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-name="smart analytics"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/smart-analytics/"track-metadata-child_headline="solutions"track-type="footer link"track-metadata-module="footer"> Smart analytics </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/ai/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/ai/"track-metadata-module="footer"track-name="artificial intelligence"track-type="footer link"track-metadata-position="footer"> Artificial Intelligence </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/security/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/solutions/security/"track-type="footer link"track-metadata-position="footer"track-name="security"track-metadata-child_headline="solutions"> Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://workspace.google.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-name="productivity and work transformation"track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="solutions"track-metadata-module="footer"track-metadata-eventDetail="workspace.google.com/enterprise/"target="_blank"> Productivity & work transformation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#industry-solutions" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-module="footer"track-name="industry solutions"track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/#industry-solutions"> Industry solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/devops/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/devops/"track-metadata-child_headline="solutions"track-type="footer link"track-metadata-module="footer"track-name="devops solutions"> DevOps solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#section-14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-eventDetail="cloud.google.com/solutions/#section-14"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-module="footer"track-name="small business solutions"track-type="footer link"> Small business solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/"track-name="see all solutions"track-type="footer link"track-metadata-child_headline="solutions"track-metadata-module="footer"> See all solutions </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/affiliate-program/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-type="footer link"track-name="google cloud affiliate program"track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/affiliate-program/"> Google Cloud Affiliate Program </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"track-type="footer link"track-name="google cloud documentation"track-metadata-eventDetail="cloud.google.com/docs/"> Google Cloud documentation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/get-started/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-name="google cloud quickstarts"track-type="footer link"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/docs/get-started/"> Google Cloud quickstarts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/marketplace/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-type="footer link"track-metadata-eventDetail="cloud.google.com/marketplace/"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"track-name="google cloud marketplace"> Google Cloud Marketplace </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/discover/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-type="footer link"track-metadata-eventDetail="learn/"track-metadata-child_headline="resources"track-metadata-module="footer"track-name="learn about cloud computing"track-metadata-position="footer"> Learn about cloud computing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support-hub/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-child_headline="resources"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-name="support"track-metadata-eventDetail="cloud.google.com/support-hub/"> Support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-eventDetail="cloud.google.com/docs/samples"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"track-name="code samples"track-metadata-child_headline="resources"> Code samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/architecture/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-child_headline="resources"track-type="footer link"track-metadata-eventDetail="cloud.google.com/architecture/"track-metadata-position="footer"track-metadata-module="footer"track-name="cloud architecture center"> Cloud Architecture Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/training/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-eventDetail="cloud.google.com/training/"track-type="footer link"track-name="training"track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-module="footer"> Training </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/certification/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-child_headline="resources"track-metadata-module="footer"track-name="certifications"track-metadata-eventDetail="cloud.google.com/certification"track-type="footer link"track-metadata-position="footer"> Certifications </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-name="google developers"track-metadata-eventDetail="developers.google.com"target="_blank"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"track-type="footer link"> Google for Developers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/startup/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-metadata-position="footer"track-name="google cloud for startups"track-metadata-eventDetail="cloud.google.com/startup/"track-metadata-child_headline="resources"track-type="footer link"track-metadata-module="footer"> Google Cloud for Startups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//status.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" target="_blank"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-module="footer"track-type="footer link"track-name="system status"track-metadata-eventDetail="status.cloud.google.com"> System status </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/release-notes" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 14)" track-metadata-eventDetail="cloud.google.com/release-notes/"track-name="release notes"track-type="footer link"track-metadata-child_headline="resources"track-metadata-module="footer"track-metadata-position="footer"> Release Notes </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/contact/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="contact sales"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/contact/"track-metadata-child_headline="engage"track-type="footer link"track-metadata-module="footer"> Contact sales </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/find-a-partner" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-child_headline="engage"track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/find-a-partner"track-name="find a partner"target="_blank"track-metadata-module="footer"> Find a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/partners/become-a-partner/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-child_headline="engage"track-name="become a partner"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/partners/become-a-partner/"> Become a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/events/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-child_headline="engage"track-metadata-position="footer"track-name="events"track-metadata-module="footer"track-type="footer link"track-metadata-eventDetail="cloud.withgoogle.com/events"> Events </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-name="podcasts"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"rel="noopener"track-metadata-child_headline="engage"track-metadata-eventDetail="cloud.google.com/podcasts/"target="_blank"> Podcasts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/developers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-child_headline="engage"track-type="footer link"track-metadata-eventDetail="cloud.google.com/developers/"track-metadata-position="footer"track-metadata-module="footer"track-name="developer center"> Developer Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudpresscorner.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-position="footer"target="_blank"track-metadata-child_headline="engage"track-type="footer link"track-name="press corner"track-metadata-module="footer"rel="noopener"track-metadata-eventDetail="www.googlecloudpresscorner.com"> Press Corner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" rel="noopener"track-name="google cloud on youtube"track-metadata-child_headline="engage"target="_blank"track-type="footer link"track-metadata-eventDetail="www.youtube.com/googlecloud"track-metadata-position="footer"track-metadata-module="footer"> Google Cloud on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloudplatform" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"rel="noopener"target="_blank"track-metadata-eventDetail="www.youtube.com/googlecloudplatform"track-metadata-child_headline="engage"track-name="google cloud tech on youtube"> Google Cloud Tech on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-position="footer"track-type="footer link"track-metadata-module="footer"track-metadata-eventDetail="x.com/googlecloud"track-metadata-child_headline="engage"track-name="follow on x"target="_blank"rel="noopener"> Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" target="_blank"track-metadata-eventDetail="userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693"track-name="join user research"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="engage"> Join User Research </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//careers.google.com/cloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" target="_blank"track-metadata-module="footer"track-metadata-eventDetail="careers.google.com/cloud"track-metadata-position="footer"track-metadata-child_headline="engage"track-name="we are hiring join google cloud"track-type="footer link"> We're hiring. Join Google Cloud! </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudcommunity.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-metadata-child_headline="engage"track-metadata-position="footer"target="_blank"track-type="footer link"track-name="google cloud community"rel="noopener"track-metadata-module="footer"track-metadata-eventDetail="www.googlecloudcommunity.com"> Google Cloud Community </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//about.google/" data-category="Site-Wide Custom Events" data-label="Footer About Google link" track-metadata-position="footer" track-metadata-module="utility footer" target="_blank" track-metadata-eventDetail="//about.google/" track-name="about google" track-type="footer link" > About Google </a> </li> <li class="devsite-footer-utility-item devsite-footer-privacy-link"> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" track-metadata-position="footer" track-name="privacy" track-type="footer link" target="_blank" track-metadata-module="utility footer" track-metadata-eventDetail="//policies.google.com/privacy" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//www.google.com/intl/en/policies/terms/regional.html" data-category="Site-Wide Custom Events" data-label="Footer Site terms link" track-name="site terms" track-metadata-eventDetail="//www.google.com/intl/en/policies/terms/regional.html" target="_blank" track-type="footer link" track-metadata-module="utility footer" track-metadata-position="footer" > Site terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/product-terms/" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud terms link" track-type="footer link" track-metadata-eventDetail="/product-terms/" track-name="google cloud terms" track-metadata-module="utility footer" track-metadata-position="footer" > Google Cloud terms </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" track-type="footer link" track-metadata-eventDetail="#" aria-hidden="true" track-name="Manage cookies" track-metadata-position="footer" track-metadata-module="utility footer" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-carbon-button"> <a class="devsite-footer-utility-link gc-analytics-event" href="/sustainability" data-category="Site-Wide Custom Events" data-label="Footer Our third decade of climate action: join us link" track-type="footer link" track-metadata-module="utility footer" track-metadata-position="footer" track-name="Our third decade of climate action: join us" track-metadata-eventDetail="/sustainability/" > Our third decade of climate action: join us </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" track-metadata-eventDetail="/newsletter/" track-metadata-module="utility footer" track-name="subscribe" track-type="footer link" track-metadata-position="footer" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Datastream&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;cloud&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <cloudx-user></cloudx-user> <cloudx-free-trial-eligible-store freeTrialEligible='true'></cloudx-free-trial-eligible-store> <cloudx-pricing-socket></cloudx-pricing-socket> <cloudx-experiments type="TestAACodivertedExperiment" path="/virtual/TestAACodivertedExperiment/configureExperiment" location="SG" variant="variant2" ></cloudx-experiments> <cloudx-experiment-ids userCountry="SG" devsiteExperimentIdList="[39300012, 39300020, 39300118, 39300195, 39300251, 39300318, 39300320, 39300324, 39300346, 39300354, 39300363, 39300374, 39300412, 39300421, 39300436, 39300473, 39300487, 39300496, 39300498, 39300569]"> </cloudx-experiment-ids> <script nonce="tGQD3UDi3HzglfgUtMfmvGDkM1d5ll"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/js/app_loader.js', '[2,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud","https://cloud-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/cloud/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/cloud/images/cloud-logo.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_cloud_shell","Profiles__enable_public_developer_profiles","Cloud__enable_cloud_dlp_service","Profiles__enable_completecodelab_endpoint","Search__enable_page_map","Cloud__enable_cloud_shell_fte_user_flow","Search__enable_ai_search_summaries_restricted","Profiles__enable_stripe_subscription_management","CloudShell__cloud_shell_button","Profiles__require_profile_eligibility_for_signin","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__enable_variable_operator","Profiles__enable_page_saving","Experiments__reqs_query_experiments","MiscFeatureFlags__developers_footer_image","BookNav__enable_tenant_cache_key","MiscFeatureFlags__enable_firebase_utm","Analytics__enable_clearcut_logging","EngEduTelemetry__enable_engedu_telemetry","Search__enable_ai_eligibility_checks","Profiles__enable_awarding_url","Concierge__enable_concierge_restricted","Search__enable_suggestions_from_borg","MiscFeatureFlags__enable_view_transitions","Cloud__enable_legacy_calculator_redirect","MiscFeatureFlags__emergency_css","Profiles__enable_profile_collections","TpcFeatures__enable_unmirrored_page_left_nav","DevPro__enable_cloud_innovators_plus","Profiles__enable_dashboard_curated_recommendations","Search__scope_to_project_tenant","Profiles__enable_join_program_group_endpoint","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_release_notes_notifications","Cloud__enable_cloudx_experiment_ids","Cloud__enable_llm_concierge_chat","Cloud__enable_cloud_facet_chat","Search__enable_dynamic_content_confidential_banner","Profiles__enable_complete_playlist_endpoint","Profiles__enable_recognition_badges","Profiles__enable_developer_profiles_callout","Cloud__enable_cloudx_ping","Concierge__enable_pushui","Cloud__enable_free_trial_server_call","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_completequiz_endpoint","Search__enable_ai_search_summaries","DevPro__enable_developer_subscriptions"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[2,"cloud","Google Cloud","cloud.google.com",null,"cloud-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],[1,1,null,null,1,null,["/vertex-ai/"]]],null,[22,null,null,null,null,null,"/images/cloud-logo.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,null,1,1,1,[6,5],[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,null,[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4,null,null,null,null,null,null,null,null,null,null,null,null,null,"cloud.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10