Share via


rx_write_object

Usage

revoscalepy.rx_write_object(dest: revoscalepy.datasource.RxOdbcData.RxOdbcData,
    key: str = None, value=None, version: str = None,
    key_name: str = 'id', value_name: str = 'value',
    version_name: str = 'version', serialize: bool = True,
    overwrite: bool = False, compress: str = 'zip')

Description

Stores objects in an ODBC data source. The APIs are modeled after a simple key value store.

Details

Stores an object into the ODBC data source. The object is identified by a key, and optionally, by a version (key+version). By default, the object is serialized and compressed. Returns True if successful.

The key and the version should be of some SQL character type (CHAR, VARCHAR, NVARCHAR, etc.) supported by the data source. The value column should be a binary type (VARBINARY for instance). Some conversions to other types might work, however, they are dependent on the ODBC driver and on the underlying package functions.

Arguments

key

A character string identifying the object. The intended use is for the key+version to be unique.

value

A python object serializable by dill.

dest

The object being stored into the data source.

version

None or a character string which carries the version of the object. Combined with key identifies the object.

key_name

Character string specifying the column name for the key in the underlying table.

value_name

Character string specifying the column name for the objects in the underlying table.

version_name

Character string specifying the column name for the version in the underlying table.

serialize

Bool value. Dictates whether the object is to be serialized. Only raw values are supported if serialization is off.

compress

Character string defining the compression algorithm to use for memCompress.

deserialize

Bool value. Defines whether the object is to be de-serialized.

overwrite

Bool value. If True, rx_write_object first removes the key (or the key+version combination) before writing the new value. Even when overwrite is False, rx_write_object may still succeed if there is no database constraint (or index) enforcing uniqueness.

Returns

rx_read_object returns an object. rx_write_object and rx_delete_object return bool, True on success. rx_list_keys returns a single column data frame containing strings.

Example

from pandas import DataFrame
from numpy import random
from revoscalepy import RxOdbcData, rx_write_object, rx_read_object, rx_list_keys, rx_delete_object

connection_string = 'Driver=SQL Server;Server=.;Database=RevoTestDb;Trusted_Connection=True;'
dest = RxOdbcData(connection_string, table = "dataframe")

df = DataFrame(random.randn(10, 5))

status = rx_write_object(dest, key = "myDf", value = df)

read_obj = rx_read_object(dest, key = "myDf")

keys = rx_list_keys(dest)

rx_delete_object(dest, key = "myDf")