Git Product home page Git Product logo

cloud-bigtable-client's Introduction

Travis CI status Maven Stack Overflow

Google Cloud Bigtable is Google's NoSQL Big Data database service. It's the same database that powers many core Google services, including Search, Analytics, Maps, and Gmail.

Bigtable is designed to handle massive workloads at consistent low latency and high throughput, so it's a great choice for both operational and analytical applications, including IoT, user analytics, and financial data analysis.

Bigtable provisions and scales to hundreds of petabytes automatically, and can smoothly handle millions of operations per second. Changes to the deployment configuration are immediate, so there is no downtime during reconfiguration.

Bigtable integrates easily with popular Big Data tools like Hadoop, as well as Google Cloud Platform products like Cloud Dataflow and Dataproc. Plus, Bigtable supports the open-source, industry-standard HBase API, which makes it easy for development teams to get started.

Project setup, installation, and configuration

Prerequisites

Using the Java client

  • Add the appropriate Cloud Bigtable artifact dependencies to your Maven project.

    • bigtable-hbase-1.x: use for standalone applications where you are in control your dependencies.
    • bigtable-hbase-1.x-hadoop: use in hadoop environments
    • bigtable-hbase-1.x-mapreduce: use for map/reduce utilities
    • bigtable-hbase-1.x-shaded: use in environments (other than hadoop) that require older versions of protobuf, guava, etc.
    • bigtable-hbase-2.x: use for standalone applications where you are in control your dependencies. This includes an HBase async client.
    • bigtable-hbase-2.x-hadoop: use in hadoop environments
    • bigtable-hbase-2.x-shaded: use in environments (other than hadoop) that require older versions of protobuf, guava, etc.

    Maven:

    <dependency>
      <groupId>com.google.cloud.bigtable</groupId>
      <artifactId>bigtable-hbase-1.x</artifactId>
      <version>1.6.0</version>
    </dependency>

    Gradle:

    compile 'com.google.cloud.bigtable:bigtable-hbase-1.x:1.6.0'

    SBT:

    libraryDependencies += "com.google.cloud.bigtable" % "bigtable-hbase-1.x" % "1.6.0"
  • Refer to the Java samples documentation for detailed demonstrations of how to read and write data with Cloud Bigtable. The code for these samples is available in the Cloud Bigtable examples project.

Questions and discussions

If you have questions or run into issues with Google Cloud Bigtable or the client libraries, you can use any of the following forums:

You can also subscribe to google-cloud-bigtable-announce@ list to receive infrequent product and client library announcements.

Developing and testing

  1. Running mvn clean install will build and install Cloud Bigtable client artifacts to your local repository, and then run the unit tests.

  2. There is also a suite of integration tests that connect to a cluster you have access to via the authentication credentials that were loaded via the Google Cloud SDK configuration step (see above).

    Use the following command to run the Cloud Bigtable integration tests for HBase 1:

    mvn clean integration-test \
        -PbigtableIntegrationTest \
        -Dgoogle.bigtable.project.id=[your cloud project id] \
        -Dgoogle.bigtable.instance.id=[your cloud bigtable instance id]

    Use the following command to run the Cloud Bigtable integration tests for HBase 2:

    mvn clean integration-test \
        -PbigtableIntegrationTestH2 \
        -Dgoogle.bigtable.project.id=[your cloud project id] \
        -Dgoogle.bigtable.instance.id=[your cloud bigtable instance id]

    There are also tests that perform compatibility tests against an HBase Minicluster, which can be invoked with the following commands for HBase 1 and HBase 2 respectively:

    mvn clean integration-test -PhbaseLocalMiniClusterTest
    mvn clean integration-test -PhbaseLocalMiniClusterTestH2

    You can run those commands at the top of the project, or you can run then at the appropriate integration-tests project.

    Developer's NOTE: You can build the project faster by running the following command, and then run the integration test command from the appropriate integration test directory:

    mvn -pl bigtable-hbase-1.x-parent/bigtable-hbase-1.x-integration-tests \
    -pl bigtable-hbase-2.x-parent/bigtable-hbase-2.x-integration-tests \
    -am clean install

NOTE: This project uses extensive shading which IDEs have trouble with. To over come these issues, you can disable the with-shaded profile in your IDE to force it to resolve the dependencies from your local maven repository. When you disable that profile, you have to attach workspace sources to local maven repository jars.

Clients and Repositories

Name Language Repository latest version status
Cloud Bigtable Examples Java, others GoogleCloudPlatform/cloud-bitgable-examples
HBase client Java GoogleCloudPlatform/cloud-bigtable-client Maven GA
Cloud Bigtable GoLang Go googleapis/google-cloud-go N/A GA
Cloud Bigtable Java java googleapis/google-cloud-java Maven Beta
Cloud Bigtable Python Python googleapis/google-cloud-python PyPI version Beta
Cloud Bigtable Node.js Node googleaps/nodejs-bigtable npm version Beta
Cloud Bigtable C# C# googleapis/google-cloud-dotnet NuGet version Beta
Cloud Bigtable C++ C++ googleapis/google-cloud-cpp 0.2.0 Beta
Cloud Bigtable Ruby Ruby googleapis/google-cloud-ruby Gem Version Alpha
Cloud Bigtable PHP PHP googleapis/google-cloud-php In progress

Contributing changes

See CONTRIBUTING.md for more information on how to contribute to this project.

License

Apache 2.0; see LICENSE for details.

cloud-bigtable-client's People

Contributors

sduskis avatar kevinsi4508 avatar mgarolera avatar igorbernstein2 avatar carterpage avatar garye avatar angusdavis avatar rameshdharan avatar rupeshitpatekarq avatar pawan-qlogic avatar spollapally avatar astath avatar mbrukman avatar ajaaym avatar hegemonic avatar dmmcerlean avatar bmenasha avatar gamorris avatar dhalperi avatar liujiongxin avatar rahulkql avatar weiminyu avatar cmccoy avatar jgeewax avatar brendangleason avatar maxluebbe avatar steveniemitz avatar ianzhou1 avatar dsymonds avatar devlance avatar

Watchers

James Cloos avatar Jonathan Smith avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.