└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Spanner 2 | 3 | A curated list of awesome [Google Cloud Spanner](https://cloud.google.com/spanner) 4 | tools, libraries and more. Please suggest new entries if 5 | you know other awesome Spanner resources. 6 | 7 | ## Documentation 8 | 9 | * [Official Documentation](https://cloud.google.com/spanner) 10 | * [Best Practices](https://cloud.google.com/spanner/docs/best-practice-list) 11 | * [API Reference](https://cloud.google.com/spanner/docs/reference/rest) 12 | * [GCP Weekly: Spanner](https://www.gcpweekly.com/gcp-resources/tag/google-cloud-spanner/) 13 | 14 | ## Libraries and ORM 15 | 16 | ### Client Libraries 17 | 18 | * [Authentication via Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/production) 19 | * [Java](https://googleapis.dev/java/google-cloud-clients/0.119.0-alpha/com/google/cloud/spanner/package-summary.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/java)) 20 | * [Go](https://pkg.go.dev/cloud.google.com/go/spanner) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/go)) 21 | * [Node.js](https://googleapis.dev/nodejs/spanner/latest/) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/nodejs)) 22 | * [Python](https://googleapis.dev/python/spanner/latest/index.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/python)) 23 | * [PHP](https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/latest/spanner/readme) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/php)) 24 | * [Ruby](https://googleapis.dev/ruby/google-cloud-spanner/latest/Google/Cloud/Spanner.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/ruby)) 25 | * [C#](https://googleapis.github.io/google-cloud-dotnet/docs/Google.Cloud.Spanner.Data/api/Google.Cloud.Spanner.Data.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/csharp)) 26 | 27 | ### Drivers 28 | 29 | * [Google's OSS](https://cloud.google.com/spanner/docs/jdbc-drivers) JDBC driver 30 | * [Simba](https://cloud.google.com/spanner/docs/jdbc-drivers) JDBC driver 31 | * [R2DBC](https://github.com/GoogleCloudPlatform/cloud-spanner-r2dbc) driver 32 | * [Go database/sql](https://github.com/rakyll/go-sql-driver-spanner) driver 33 | 34 | ### ORM 35 | 36 | * [Django](https://github.com/googleapis/python-spanner-django/) 37 | * [Hibernate ORM](https://cloud.google.com/spanner/docs/use-hibernate) 38 | * [Spring Data](https://cloud.google.com/spanner/docs/adding-spring) 39 | 40 | ## Tools 41 | 42 | * [Spanner Console](https://console.cloud.google.com/spanner) 43 | * [Spanner command-line](https://github.com/cloudspannerecosystem/spanner-cli) 44 | * [gcloud Reference](https://cloud.google.com/sdk/gcloud/reference/spanner) 45 | * [Spanner Emulator](https://github.com/GoogleCloudPlatform/cloud-spanner-emulator) 46 | * [wrench](https://github.com/cloudspannerecosystem/wrench) - Schema management tool for Spanner. 47 | * [hammer](https://github.com/daichirata/hammer) - Schema management tool for Spanner. 48 | * [yo](https://github.com/cloudspannerecosystem/yo) - A command-line tool to generate Go code for Google Cloud Spanner. 49 | * [handy-spanner](https://github.com/gcpug/handy-spanner) - An unofficial SQLite backed Spanner emulator. 50 | * [spannerz](https://github.com/rakyll/spannerz) - Query planner visualizer that also provides introspection tools for Go programs. 51 | * [spanner-dump](https://github.com/cloudspannerecosystem/spanner-dump) - A command-line tool to export Cloud Spanner databases in text format. 52 | 53 | ## Configuration Management 54 | 55 | * [Chef](https://github.com/GoogleCloudPlatform/chef-google-spanner) 56 | * [Puppet](https://github.com/GoogleCloudPlatform/puppet-google-spanner) 57 | * [Terraform](https://www.terraform.io/docs/providers/google/r/spanner_database.html) 58 | 59 | ## Migration 60 | 61 | * Migration from [PostgreSQL](https://cloud.google.com/spanner/docs/migrating-postgres-spanner), [MySQL](https://cloud.google.com/solutions/migrating-mysql-to-spanner), [Oracle](https://cloud.google.com/solutions/migrating-oracle-to-cloud-spanner), [DynomoDB](https://cloud.google.com/solutions/migrating-dynamodb-to-cloud-spanner). 62 | * [Harbourbridge](https://github.com/cloudspannerecosystem/harbourbridge) - PostgreSQL to Spanner schema and data migrator. 63 | * [pgadapter](https://github.com/cloudspannerecosystem/pgadapter) - A proxy that translates the wire protocol from Postgres to Cloud Spanner. 64 | * [migrate](https://github.com/golang-migrate/migrate) - A migration tool with Spanner support. 65 | 66 | ## Performance and Debugging 67 | 68 | * [Query Execution Plans](https://cloud.google.com/spanner/docs/query-execution-plans) 69 | * [SQL Best Practices](https://cloud.google.com/spanner/docs/sql-best-practices) 70 | * [CPU Utilization](https://cloud.google.com/spanner/docs/cpu-utilization) 71 | * [Latency Debugging](https://cloud.google.com/spanner/docs/latency) 72 | * [Distributed Tracing and Client Metrics](https://medium.com/@orijtech/cloud-spanner-instrumented-by-opencensus-and-exported-to-stackdriver-6ed61ed6ab4e) 73 | 74 | 75 | ## Whitepapers 76 | 77 | * [Spanner: Google's Globally-Distributed Database](https://research.google/pubs/pub39966/) 78 | * [Spanner, TrueTime and the CAP Theorem](https://research.google/pubs/pub45855/) 79 | * [Spanner: Becoming a SQL System](https://research.google/pubs/pub46103/) 80 | 81 | ## Talks 82 | 83 | * [Cloud Spanner 101: Google's mission-critical relational database](https://www.youtube.com/watch?v=IfsTINNCooY) 84 | * [Spanner Internals Part 1: What Makes Spanner Tick?](https://www.youtube.com/watch?v=nvlt0dA7rsQ) 85 | * [Spanner Internals Part 2: Global Meta-Data and Scalable Data Backend](https://www.youtube.com/watch?v=zy-rcR4MoN4) 86 | * [Best Practices on Migrating to Cloud Spanner](https://www.youtube.com/watch?v=FNeGQUqMa_c) 87 | * [Ben Sigelman presents the Spanner whitepaper](https://youtu.be/mYV6_OaZeEs?t=1629) 88 | 89 | ## Podcasts 90 | 91 | * [Google Cloud Platform Podcast](https://www.gcppodcast.com/post/episode-62-cloud-spanner-with-deepti-srivastava/) 92 | * [Software Engineering Daily](https://softwareengineeringdaily.com/2019/09/10/google-spanner-with-deepti-srivastava) 93 | * [The Architect](http://architechtshow.com/ep-44-googles-deepti-srivastava-on-multi-region-spanner-and-case-for-cloud-databases) 94 | 95 | ## Meetups 96 | 97 | * [Google Cloud Spanner Developers](https://www.meetup.com/Cloud-Spanner-Developers/), San Francisco, CA --------------------------------------------------------------------------------