Udostępnij przez


Organizacja danych

Dane są ustrukturyzowane w Poufnym Rejestrze platformy Azure na dwa podstawowe sposoby: identyfikator transakcji i identyfikator kolekcji (lub identyfikator podrejestru). Każda operacja zapisu generuje unikatowy identyfikator transakcji, który może służyć do pobierania wpisów, uzyskiwania paragonów lub wykonywania innych operacji. Identyfikatory kolekcji to klucze określone przez użytkownika (opcjonalnie), które ułatwiają grupowanie lub unikatowe identyfikowanie wpisów, co pozwala na bardziej wydajne pobieranie danych i zarządzanie nimi. Na tej stronie przedstawiono przykłady pokazujące, jak tworzyć pozycje rejestru, pobierać pozycje według identyfikatora transakcji oraz wyświetlać pozycje w określonym zakresie lub kolekcji.

Ponadto dane można organizować i wykonywać zapytania za pomocą tagów (w wersji zapoznawczej), co umożliwia ulepszone zarządzanie danymi w kolekcjach, działając jako klucze pomocnicze.

Identyfikator transakcji

Każdy zapis zapisywany w rejestrze generuje identyfikator transakcji, który jest zwracany w odpowiedzi z punktu końcowego zapisu. Wygląda to jak w poniższym przykładzie:

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

Reakcja:

Transaction ID: 2.10

Identyfikator transakcji w odpowiedzi może służyć do pobierania wpisu lub wykonywania innych operacji, takich jak pobieranie paragonu itp. Istnieje również możliwość pobrania listy wpisów przez podanie zakresu parametrów identyfikatora transakcji podobnych do poniższego przykładu.

# 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)

Identyfikator kolekcji

Identyfikator kolekcji (znany również jako Subledger ID) w rejestrze Azure odnosi się do opcjonalnego klucza określonego przez użytkownika dla wpisów w rejestrze. Zapewnia on sposób dodawania klucza lub znacznika do zapisywanych danych, które następnie mogą służyć do pobierania danych później.

Identyfikator kolekcji to ciągi i nie mają obecnie limitu rozmiaru. Oznacza to, że maksymalny rozmiar zależy od limitu rozmiaru żądania HTTP.

Mogą być one używane jako unikatowe klucze dla każdego wpisu zapisanego w rejestrze lub grupowania podsekcji wpisów.
Jeśli nie określono identyfikatora kolekcji, dane są zapisywane w tabeli domyślnej (nazywanej subledger-0).

Aby określić identyfikator kolekcji, użytkownik musi określić parametr collectionID podczas żądania zapisu.

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

Następnie można pobrać transakcję, określając collection ID oraz transaction ID podczas odczytu lub podając tylko identyfikator kolekcji w operacjach 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']}")

Można również uzyskać listę wpisów w kolekcji, określając zarówno identyfikator kolekcji, jak i zakres parametrów identyfikatora transakcji.

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

Tagi (wersja przeglądowa)

Dodawanie tagów do kolekcji to funkcja zapoznawcza dostępna w najnowszych wersjach zapoznawczych rejestru. Uaktualnij wersje zestawu SDK na podstawie Dokumentacji Referencyjnej API REST 2024-12-09-preview lub nowsze, aby mieć dostęp.

Ponadto ta funkcja jest ograniczona do poufnych rejestrów, które są typu Rejestru publicznego . Prywatny Typ rejestru nie jest obsługiwany.

Umożliwiają one lepsze zarządzanie danymi w kolekcji, działając jako klucze pomocnicze do zbierania danych. Tagi są ograniczone do 64 ciągów znaków. Każda transakcja może obsługiwać maksymalnie pięć tagów. Jeśli występuje błąd związany z liczbą obsługiwanych tagów i wymagany jest wyższy limit, skontaktuj się z pomocą techniczną.

Aby można było używać tagów wewnątrz kolekcji, należy określić parametr tagów.

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

Pobieranie wpisów można wykonać tak jak wcześniej:

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

Dalsze kroki