示例#1
0
文件: spannerio.py 项目: mszb/beam
 def setup(self):
   # setting up client to connect with cloud spanner
   spanner_client = Client(self._spanner_configuration.project)
   instance = spanner_client.instance(self._spanner_configuration.instance)
   self._database = instance.database(
       self._spanner_configuration.database,
       pool=self._spanner_configuration.pool)
示例#2
0
 def setup(self):
     spanner_client = Client(self._spanner_configuration.project)
     instance = spanner_client.instance(
         self._spanner_configuration.instance)
     self._db_instance = instance.database(
         self._spanner_configuration.database,
         pool=self._spanner_configuration.pool)
示例#3
0
文件: spannerio.py 项目: mszb/beam
 def setup(self):
   spanner_client = Client(self._spanner_configuration.project)
   instance = spanner_client.instance(self._spanner_configuration.instance)
   self._database = instance.database(
       self._spanner_configuration.database,
       pool=self._spanner_configuration.pool)
   self._snapshot = self._database.batch_snapshot(
       **self._spanner_configuration.snapshot_options)
示例#4
0
文件: spannerio.py 项目: mszb/beam
 def setup(self):
   spanner_client = Client(
       project=self._spanner_configuration.project,
       credentials=self._spanner_configuration.credentials)
   instance = spanner_client.instance(self._spanner_configuration.instance)
   self._database = instance.database(
       self._spanner_configuration.database,
       pool=self._spanner_configuration.pool)
   self._snapshot = self._database.batch_snapshot(
       **self._spanner_configuration.snapshot_options)
   self._snapshot_dict = self._snapshot.to_dict()
示例#5
0
文件: spannerio.py 项目: mszb/beam
class _CreateTransactionFn(DoFn):
  """
  A DoFn to create the transaction of cloud spanner.
  It connects to the database and and returns the transaction_id and session_id
  by using the batch_snapshot.to_dict() method available in the google cloud
  spanner sdk.

  https://googleapis.dev/python/spanner/latest/database-api.html?highlight=
  batch_snapshot#google.cloud.spanner_v1.database.BatchSnapshot.to_dict
  """
  def __init__(
      self,
      project_id,
      instance_id,
      database_id,
      credentials,
      pool,
      read_timestamp,
      exact_staleness):
    self._project_id = project_id
    self._instance_id = instance_id
    self._database_id = database_id
    self._credentials = credentials
    self._pool = pool

    self._snapshot_options = {}
    if read_timestamp:
      self._snapshot_options['read_timestamp'] = read_timestamp
    if exact_staleness:
      self._snapshot_options['exact_staleness'] = exact_staleness
    self._snapshot = None

  def setup(self):
    self._spanner_client = Client(
        project=self._project_id, credentials=self._credentials)
    self._instance = self._spanner_client.instance(self._instance_id)
    self._database = self._instance.database(self._database_id, pool=self._pool)

  def process(self, element, *args, **kwargs):
    self._snapshot = self._database.batch_snapshot(**self._snapshot_options)
    return [_SPANNER_TRANSACTION(self._snapshot.to_dict())]
示例#6
0
from google.cloud.spanner import Client
from google.cloud.spanner_v1.pool import TransactionPingingPool

_INSTANCE_NAME = 'testing'
_DATABASE_NAME = 'test'

if __name__ == '__main__':
    client = Client()

    instance = client.instance(_INSTANCE_NAME)

    custom_pool = TransactionPingingPool(size=1000,
                                         default_timeout=5,
                                         ping_interval=300)

    database = instance.database(_DATABASE_NAME, pool=custom_pool)