Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Cloud SQL is a fully-managed database service that makes it easy to set up, maintain, manage, and administer your relational databases on Google Cloud Platform. You can use Cloud SQL with MySQL, PostgreSQL, or SQL Server (currently in beta). Cloud SQL plugins will allow CDAP users to read and write from/to their Cloud SQL instances without any technical knowledge.

Use case(s)

  • As an ETL developer, I would like to read my data in Cloud SQL, so that I can transform it using CDAP
  • As an ETL developer, I want to write the output of my pipeline to Cloud SQL, so that I can use the insights generated from my analytical processes to power my production database in Cloud SQL

User Storie(s)

  • As a user, I would like to create a pipeline using a Cloud SQL source
  • As a user, I want to create a pipeline using a Cloud SQL sink
  • As a user, I want to only specify a query, project ID and instance name to connect to Cloud SQL, so that I don't have to remember complex JDBC connection string syntax
  • As a user, I want to execute a SQL query on Cloud SQL as part of the control flow in my pipeline
  • As a user, I want to execute a SQL query on Cloud SQL as a notification of my pipeline's completion
  • As a user, I want to create a multi-table source and sink for Cloud SQL so that I can read multiple tables at the same time
  • As a user, I want to connect to Cloud SQL over a proxy.

Plugin Type

  •  Batch Source
  •  Batch Sink 
  •  Real-time Source
  •  Real-time Sink
  •  Action
  •  Post-Run Action
  •  Aggregate
  •  Join
  •  Spark Model
  •  Spark Compute

Configurables

Batch Source

This section defines properties that are configurable for this plugin. 

SectionUser Facing NameTypeDescriptionConstraintsOptional?Default
CredentialsProject IDTextbox


auto-detect
Service AccountTextbox


auto-detect
Database usernameTextboxThe username to use to connect to the CloudSQL database


Database passwordPasswordThe password to use to connect to the CloudSQL database


Cloud SQL propertiesDatabase typeRadio button
MySQL or PostgresN
Instance nameSelectSelect the Cloud SQL instance nameCan this be a select, or does it have to be a textboxN
Import QueryTextareaThe Query that specifies the data to pull from CloudSQL
N
AdvancedBounding queryTextareaThe query to use to derive the bounds (min and max) to use to generate the splits
Y

Split ColumnSelectThe column to split by
Y

Number of splitsNumberThe number of splits to generate
Y1

NOTE: Upon selecting either the Collection name or the Query, users should see a button to generate the schema. This should populate the entire 

Batch Sink

This section defines properties that are configurable for this plugin. 


SectionUser Facing NameTypeDescriptionConstraintsOptional?Default
CredentialsProject IDTextbox


auto-detect
Service AccountTextbox


auto-detect
Database IdTextboxThe Firestore database Id


Firestore properties
Collection nameSelectSelect the collection to write the data toCan this be a select, or does it have to be a textbox


Document nameSelectSpecifies the document to load the data to. Should be shown only when a collection has been selectedCan this be a select, or does it have to be a textboxYes

Design / Implementation Tips

Design

Approach(s)

Properties

Security

Limitation(s)

Future Work

  • Some future work – HYDRATOR-99999
  • Another future work – HYDRATOR-99999

Test Case(s)

  • Test case #1
  • Test case #2

Sample Pipeline

Please attach one or more sample pipeline(s) and associated data. 

Pipeline #1

Pipeline #2



Table of Contents

Table of Contents
stylecircle

Checklist

  •  User stories documented 
  •  User stories reviewed 
  •  Design documented 
  •  Design reviewed 
  •  Feature merged 
  •  Examples and guides 
  •  Integration tests 
  •  Documentation for feature 
  •  Short video demonstrating the feature