Partilhar via


Organização de Dados

Os dados são estruturados no Ledger Confidencial do Azure de duas formas principais: ID de Transação e ID de Coleção (ou ID de Sublivro). Cada operação de gravação gera um ID de transação exclusivo, que pode ser usado para recuperar entradas, obter recibos ou executar outras operações. Os IDs de coleta são chaves especificadas pelo usuário (opcionais) que ajudam a agrupar ou identificar entradas exclusivamente, permitindo uma recuperação e gerenciamento de dados mais eficientes. Esta página mostra exemplos que demonstram como criar entradas do livro-razão, recuperar entradas por ID de transação e listar entradas dentro de um intervalo ou coleção.

Além disso, os dados podem ser organizados e consultados por meio de tags (em visualização) que permitem um melhor gerenciamento de dados dentro das coleções, agindo como chaves secundárias.

ID da transação

Cada gravação no livro-razão gera um ID de transação, que é retornado na resposta do endpoint de gravação. É semelhante ao seguinte exemplo:

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

Resposta:

Transaction ID: 2.10

O ID da transação na resposta pode ser usado para recuperar a entrada ou fazer outras operações, como recuperar o recibo, etc. Também é possível obter uma lista de entradas fornecendo um intervalo de parâmetros de ID de transação semelhante ao exemplo a seguir.

# 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 da coleção

Uma Identificação de Coleção (também conhecida como ID do Sublivro) no Ledger do Azure refere-se a uma chave opcional especificada pelo usuário para as entradas registadas na ledger. Ele fornece uma maneira de adicionar uma chave ou marcador aos dados que estão sendo gravados, que pode ser usado para recuperar os dados mais tarde.

As IDs de Coleção são cadeias de caracteres e não têm limite de tamanho no momento. Isso significa que o tamanho máximo depende do limite de tamanho da solicitação http.

Eles podem ser utilizados como chaves exclusivas para cada entrada gravada no livro-razão ou para agrupar uma subseção de entradas.
Se nenhuma ID de coleção for especificada, os dados serão gravados na tabela padrão (conhecida como subledger-0).

Para especificar um ID de coleção, o usuário deve especificar o parâmetro collectionID durante a solicitação de gravação.

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

A transação pode ser recuperada especificando o collection ID e o transaction ID durante uma operação de leitura ou especificando apenas o ID de coleta nas list operações.

# 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']}")

Também é possível obter uma lista de entradas dentro de uma coleção especificando o ID da coleção e um intervalo de parâmetros de ID de transação.

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

Tags (Pré-visualização)

Adicionar tags a uma coleção é um recurso de visualização disponível com as versões de visualização mais recentes do livro-razão. Atualize para versões do SDK baseadas na Referência 2024-12-09-preview da API REST ou mais recentes para acesso.

Além disso, esse recurso é limitado a Livros Contábeis Confidenciais do tipo Razão Pública . Privado O tipo de livro-razão não é suportado.

Eles permitem um melhor gerenciamento de dados dentro de uma coleção, agindo como chaves secundárias para uma coleção de dados. As tags são limitadas a 64 cadeias de caracteres. Cada transação pode suportar até cinco tags. Se for detetado um erro relacionado com o número de etiquetas suportadas e for necessário um limite superior, contacte o Serviço de Apoio.

Para usar tags dentro de uma coleção, o parâmetro tags precisa ser especificado.

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

As entradas podem ser recuperadas 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']}")

Próximos passos