Compartir a través de


Organización de datos

Los datos se estructuran dentro de Azure Confidential Ledger de dos maneras principales: Id. de transacción e Id. de recopilación (o Id. de subledger). Cada operación de escritura genera un identificador de transacción único, que se puede usar para recuperar entradas, obtener recibos o realizar otras operaciones. Los identificadores de recopilación son claves especificadas por el usuario (opcional) que ayudan a agrupar o identificar de forma única las entradas, lo que permite una recuperación y administración de datos más eficientes. En esta página se muestran ejemplos que muestran cómo crear entradas de libro de contabilidad, recuperar entradas por identificador de transacción y enumerar entradas dentro de un intervalo o colección.

Además, los datos se pueden organizar y consultar a través de etiquetas (en versión preliminar) que permiten una administración de datos mejorada dentro de las colecciones actuando como claves secundarias.

Id. de transacción

Cada registro en el libro de contabilidad genera un identificador de transacción, que se devuelve en la respuesta del extremo de escritura. Parece el ejemplo siguiente:

sample_entry = {"contents": "Hello world!"}
append_result = ledger_client.create_ledger_entry(entry=sample_entry)
print(f"Transaction ID: {append_result['transactionId']}")

Respuesta:

Transaction ID: 2.10

El identificador de transacción de la respuesta se puede usar para recuperar la entrada o realizar otras operaciones, como recuperar el recibo, etc. También es posible obtener una lista de entradas proporcionando un intervalo de parámetros de id. de transacción similares al ejemplo siguiente.

# Get the latest transaction to the ledger default/global table
get_result = ledger_client.get_current_ledger_entry()
# Get one transaction
get_result = ledger_client.get_ledger_entry(transaction_id=2.10)
# Get a list of transactions within a range
list_result = ledger_client.list_ledger_entries(from_transaction_id=2.1, to_transaction_id=2.50)

Id. de colección

Un identificador de colección (también conocido como id. de subledger) en Azure Ledger hace referencia a una clave opcional especificada por el usuario para las entradas escritas en el libro de contabilidad. Proporciona una manera de agregar una clave o marcador a los datos que se escriben y, a continuación, se pueden usar para recuperar los datos más adelante.

Los identificadores de colección son cadenas y no tienen límite de tamaño en este momento. Significa que el tamaño máximo depende del límite de tamaño de la solicitud HTTP.

Se pueden usar como claves únicas para cada entrada escrita en el libro de contabilidad o para agrupar una subsección de entradas.
Si no se especifica ningún identificador de colección, los datos se escriben en la tabla predeterminada (conocida como subledger-0).

Para especificar un identificador de colección, el usuario debe especificar el parámetro collectionID durante la solicitud de escritura.

sample_entry = {"contents": "Secret recipe ingredients...!"}
append_result = ledger_client.create_ledger_entry(entry=sample_entry, collection_id="icecream-flavors")

A continuación, la transacción se puede recuperar especificando collection ID y transaction ID durante una operación de lectura o especificando solo el identificador de colección en las operaciones de list.

# Get the latest transaction in a collection
get_result = ledger_client.get_ledger_entry(collection_id="icecream-flavors")
# Get one specific in a collection
list_result = ledger_client.get_ledger_entry(transaction_id=2.68,collection_id="icecream-flavors")
# Get all entries in a collection
list_result = ledger_client.list_ledger_entries(collection_id="icecream-flavors")
for entry in list_result:
    print(f"Transaction ID: {entry['transactionId']}")
    print(f"Contents: {entry['contents']}")

También es posible obtener una lista de entradas dentro de una colección especificando el identificador de colección y un intervalo de parámetros de Id. de transacción.

list_result = ledger_client.list_ledger_entries(from_transaction_id=2.1, to_transaction_id=2.50, collection_id="icecream-flavors")

Etiquetas (versión preliminar)

Agregar etiquetas a una colección es una característica en versión preliminar disponible con las versiones preliminares más recientes del libro de contabilidad. Actualice a las versiones del SDK en función de la referencia de API de REST 2024-12-09-preview o versiones posteriores para el acceso.

Además, esta característica se limita a los libros de contabilidad confidenciales de tipo público. No se admite el tipo de libro de contabilidad Privado.

Permiten una administración mejorada de los datos dentro de una colección actuando como claves secundarias en una colección de datos. Las etiquetas están limitadas a 64 cadenas de caracteres. Cada transacción puede admitir hasta cinco etiquetas. Si se ve un error relacionado con el número de etiquetas admitidas y se requiere un límite mayor, póngase en contacto con el soporte técnico.

Para usar etiquetas dentro de una colección, es necesario especificar el parámetro tags.

# multiple tags can be specified using commas.
append_result = ledger_client.create_ledger_entry(entry=sample_entry, collection_id="icecream-flavors", tags="chocolate,vanilla")

La recuperación de entradas se puede realizar como antes:

# Get all entries in a collection which has a specified tag. Only one tag is supported per query during a Read operation. Only list/ranged operations are supported with tags.  
list_result = ledger_client.list_ledger_entries(collection_id="icecream-flavors", tag="chocolate")
for entry in list_result:
    print(f"Transaction ID: {entry['transactionId']}")
    print(f"Contents: {entry['contents']}")

Pasos siguientes