コード例 #1
0
ファイル: hypertable_interface.py プロジェクト: rca/appscale
    def batch_delete(self, table_name, row_keys, column_names=[]):
        """Remove a set of keys
     
    Args:
      table_name: Table to delete rows from
      row_keys: A list of keys to remove
      column_names: Not used
    Raises:
      AppScaleDBConnectionError when unable to execute deletes
      TypeError: Bad argument types
    Returns:
      Nothing
    """

        if not isinstance(table_name, str): raise TypeError("Expected str")
        if not isinstance(row_keys, list): raise TypeError("Expected list")

        row_keys = [self.__encode(row) for row in row_keys]
        __DELETE_ROW = 0
        cell_list = []

        mutator = self.conn.mutator_open(self.ns, table_name, 0, 0)

        for key in row_keys:
            cell = ttypes.Cell()
            ttypekey = ttypes.Key(row=key, flag=__DELETE_ROW)
            cell.key = ttypekey
            cell_list.append(cell)

        self.conn.mutator_set_cells(mutator, cell_list)
        self.conn.mutator_close(mutator)
コード例 #2
0
    def batch_put_entity(self, table_name, row_keys, column_names,
                         cell_values):
        """Allows callers to store multiple rows with a single call.
   
    Args: 
      table_name: A str, the table to mutate.
      row_keys: A list of keys to store on.
      column_names: A list of columns to mutate.
      cell_values: A dict of key/value pairs.
    Raises:
      TypeError: Bad argument types.
    """

        if not isinstance(table_name, str):
            raise TypeError("Expected str")
        if not isinstance(column_names, list):
            raise TypeError("Expected list")
        if not isinstance(row_keys, list):
            raise TypeError("Expected list")
        if not isinstance(cell_values, dict):
            raise TypeError("Expected dict")

        __INSERT = 255
        cell_list = []

        mutator = self.conn.mutator_open(self.ns, table_name, 0, 0)

        for key in row_keys:
            for col in column_names:
                cell = ttypes.Cell()
                ttypekey = ttypes.Key(row=self.__encode(key),
                                      column_family=col,
                                      flag=__INSERT)
                cell.key = ttypekey
                cell.value = cell_values[key][col]
                cell_list.append(cell)

        self.conn.mutator_set_cells(mutator, cell_list)
        self.conn.mutator_close(mutator)
コード例 #3
0
        client = self.__initConnection()
        if not self.__table_exist(table_name, client):
            table_schema = self.__constructSchemaXml(column_names)
            try:
                ret = client.create_table(self.ns, table_name, table_schema)
            except Exception, e:
                file = open("/tmp/hyper_exception_log", "a")
                file.write(str(e))
                file.write("at put entity create table\n")
                file.close()

        try:
            mutator = client.mutator_open(self.ns, table_name, 0, 0)
            cell_list = []
            for ii in range(0, len(column_names)):
                cell = ttypes.Cell()
                keyflag = ttypes.KeyFlag()
                #255 is insert
                key = ttypes.Key(row=row_key,
                                 column_family=column_names[ii],
                                 flag=255)
                cell.key = key
                cell.value = cell_values[ii]
                cell_list.append(cell)
            client.mutator_set_cells(mutator, cell_list)
            client.mutator_close(mutator)

        except Exception, e:
            file = open("/tmp/hyper_exception_log", "a")
            file.write(str(e))
            file.write("at trying to put the object\n")