DatabaseProxy Klasa
Interfejs umożliwiający interakcję z określoną bazą danych.
Nie należy bezpośrednio utworzyć wystąpienia tej klasy. Zamiast tego należy użyć <xref:CosmosClient.get_database_client> metody .
Baza danych zawiera co najmniej jeden kontener, z których każdy może zawierać elementy, procedury składowane, wyzwalacze i funkcje zdefiniowane przez użytkownika.
Baza danych może również mieć skojarzonych użytkowników, z których każdy jest skonfigurowany z zestawem uprawnień dostępu do określonych kontenerów, procedur składowanych, wyzwalaczy, funkcji zdefiniowanych przez użytkownika lub elementów.
Baza danych interfejsu API SQL usługi Azure Cosmos DB ma następujące właściwości wygenerowane przez system. Te właściwości są tylko do odczytu:
_rid: identyfikator zasobu.
_ts: kiedy zasób został ostatnio zaktualizowany. Wartość jest znacznikiem czasu.
_self: unikatowy adresowy identyfikator URI zasobu.
_etag: tag zasobu wymagany do optymistycznej kontroli współbieżności.
_colls: ścieżka adresowa zasobu kolekcji.
_users: ścieżka adresowa zasobu użytkowników.
- Dziedziczenie
-
builtins.objectDatabaseProxy
Konstruktor
DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)
Parametry
- client_connection
- <xref:ClientSession>
Klient, z którego pobrano tę bazę danych.
- properties
Zmienne
- id
Identyfikator (nazwa) bazy danych.
Metody
create_container |
Utwórz nowy kontener o podanym identyfikatorze (nazwie). Jeśli kontener o danym identyfikatorze już istnieje, zostanie zgłoszony błąd CosmosResourceExistsError. |
create_container_if_not_exists |
Utwórz kontener, jeśli jeszcze nie istnieje. Jeśli kontener już istnieje, zostaną zwrócone istniejące ustawienia. Uwaga: nie sprawdza ani nie aktualizuje istniejących ustawień kontenera ani nie oferuje przepływności, jeśli różnią się one od tego, co zostało przekazane do metody. |
create_user |
Utwórz nowego użytkownika w kontenerze. Aby zaktualizować lub zastąpić istniejącego użytkownika, użyj <xref:ContainerProxy.upsert_user> metody . |
delete_container |
Usuwanie kontenera. |
delete_user |
Usuń określonego użytkownika z kontenera. |
get_container_client |
Pobierz kontener ContainerProxy dla kontenera o określonym identyfikatorze (nazwie). |
get_throughput |
Pobierz obiekt ThroughputProperties dla tej bazy danych. Jeśli dla bazy danych nie ma już właściwości przepływności, zgłaszany jest wyjątek. :keyword Callable response_hook: Wywoływanie wywoływane z metadanymi odpowiedzi. :returns: PrzepływnośćWłaściwości dla bazy danych. :zgłasza błąd ~azure.cosmos.exceptions.CosmosHttpResponseError: nie ma właściwości przepływności dla kontenera lub nie można pobrać właściwości przepływności. |
get_user_client |
Pobierz element UserProxy dla użytkownika o określonym identyfikatorze. |
list_containers |
Wyświetl listę kontenerów w bazie danych. |
list_users |
Wyświetl listę wszystkich użytkowników w kontenerze. |
query_containers |
Wyświetl listę właściwości kontenerów w bieżącej bazie danych. |
query_users |
Zwróć wszystkich użytkowników pasujących do danego zapytania. |
read |
Odczytywanie właściwości bazy danych. |
read_offer |
Pobierz obiekt ThroughputProperties dla tej bazy danych. Jeśli dla bazy danych nie ma już właściwości przepływności, zgłaszany jest wyjątek. :keyword Callable response_hook: Wywoływanie wywoływane z metadanymi odpowiedzi. :returns: PrzepływnośćWłaściwości dla bazy danych. :zgłasza błąd ~azure.cosmos.exceptions.CosmosHttpResponseError: nie ma właściwości przepływności dla kontenera lub nie można pobrać właściwości przepływności. |
replace_container |
Zresetuj właściwości kontenera. Zmiany właściwości są utrwalane natychmiast. Wszystkie nieokreślone właściwości zostaną zresetowane do wartości domyślnych. |
replace_throughput |
Zastąp przepływność na poziomie bazy danych. |
replace_user |
Zastępuje określonego użytkownika, jeśli istnieje w kontenerze. |
upsert_user |
Wstaw lub zaktualizuj określonego użytkownika. Jeśli użytkownik już istnieje w kontenerze, zostanie zastąpiony. Jeśli użytkownik jeszcze nie istnieje, zostanie wstawiony. |
create_container
Utwórz nowy kontener o podanym identyfikatorze (nazwie).
Jeśli kontener o danym identyfikatorze już istnieje, zostanie zgłoszony błąd CosmosResourceExistsError.
create_container(id: str, partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, unique_key_policy: Dict[str, Any] | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, **kwargs: Any) -> ContainerProxy
Parametry
- id
Identyfikator (nazwa) kontenera do utworzenia.
- partition_key
Klucz partycji do użycia dla kontenera.
- indexing_policy
Zasady indeksowania, które mają być stosowane do kontenera.
- default_ttl
Domyślny czas wygaśnięcia (TTL) dla elementów w kontenerze. Jeśli nie zostanie określona, elementy nie wygasną.
- offer_throughput
- int lub <xref:azure.cosmos.ThroughputProperties.>
Aprowizowana przepływność dla tej oferty.
- unique_key_policy
Unikatowe zasady klucza, które mają być stosowane do kontenera.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- session_token
- str
Token do użycia ze spójnością sesji.
- etag
- str
Wartość elementu ETag lub symbol wieloznaczny (*). Służy do sprawdzania, czy zasób uległ zmianie i działa zgodnie z warunkiem określonym przez parametr match_condition .
- match_condition
- MatchConditions
Warunek dopasowania do użycia na etagu.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
- analytical_storage_ttl
- int
Czas wygaśnięcia magazynu analitycznego (TTL) dla elementów w kontenerze. Wartość None pozostawia magazyn analityczny wyłączony, a wartość -1 włącza magazyn analityczny bez czasu wygaśnięcia. Należy pamiętać, że magazyn analityczny można włączyć tylko na kontach z włączoną obsługą Synapse Link.
Zwraca
Wystąpienie ContainerProxy reprezentujące nowy kontener.
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
Przykłady
Utwórz kontener z ustawieniami domyślnymi:
container_name = "products"
try:
container = database.create_container(
id=container_name, partition_key=PartitionKey(path="/productName")
)
except exceptions.CosmosResourceExistsError:
container = database.get_container_client(container_name)
Tworzenie kontenera z określonymi ustawieniami; w tym przypadku niestandardowy klucz partycji:
customer_container_name = "customers"
try:
customer_container = database.create_container(
id=customer_container_name,
partition_key=PartitionKey(path="/city"),
default_ttl=200,
)
except exceptions.CosmosResourceExistsError:
customer_container = database.get_container_client(customer_container_name)
create_container_if_not_exists
Utwórz kontener, jeśli jeszcze nie istnieje.
Jeśli kontener już istnieje, zostaną zwrócone istniejące ustawienia. Uwaga: nie sprawdza ani nie aktualizuje istniejących ustawień kontenera ani nie oferuje przepływności, jeśli różnią się one od tego, co zostało przekazane do metody.
create_container_if_not_exists(id: str, partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, unique_key_policy: Dict[str, Any] | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, **kwargs: Any) -> ContainerProxy
Parametry
- id
Identyfikator (nazwa) kontenera do odczytu lub utworzenia.
- partition_key
Klucz partycji do użycia dla kontenera.
- indexing_policy
Zasady indeksowania, które mają być stosowane do kontenera.
- default_ttl
Domyślny czas wygaśnięcia (TTL) dla elementów w kontenerze. Jeśli nie zostanie określona, elementy nie wygasną.
- populate_query_metrics
Włącz zwracanie metryk zapytania w nagłówkach odpowiedzi.
- offer_throughput
Aprowizowana przepływność dla tej oferty.
- unique_key_policy
Unikatowe zasady klucza, które mają być stosowane do kontenera.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- session_token
- str
Token do użycia ze spójnością sesji.
- etag
- str
Wartość elementu ETag lub symbol wieloznaczny (*). Służy do sprawdzania, czy zasób uległ zmianie i działa zgodnie z warunkiem określonym przez parametr match_condition .
- match_condition
- MatchConditions
Warunek dopasowania do użycia na etagu.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
- analytical_storage_ttl
- int
Czas wygaśnięcia magazynu analitycznego (TTL) dla elementów w kontenerze. Wartość None pozostawia magazyn analityczny wyłączony, a wartość -1 włącza magazyn analityczny bez czasu wygaśnięcia. Należy pamiętać, że magazyn analityczny można włączyć tylko na kontach z włączoną obsługą Synapse Link.
Zwraca
Wystąpienie ContainerProxy reprezentujące kontener.
Typ zwracany
Wyjątki
Nie można odczytać lub utworzyć kontenera.
create_user
Utwórz nowego użytkownika w kontenerze.
Aby zaktualizować lub zastąpić istniejącego użytkownika, użyj <xref:ContainerProxy.upsert_user> metody .
create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametry
- body
Obiekt przypominający dykt z kluczem identyfikatora i wartością reprezentującą użytkownika do utworzenia. Identyfikator użytkownika musi być unikatowy w bazie danych i składać się z nie więcej niż 255 znaków.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Wystąpienie UserProxy reprezentujące nowego użytkownika.
Typ zwracany
Wyjątki
Jeśli nie można utworzyć danego użytkownika.
Przykłady
Tworzenie użytkownika bazy danych:
try:
database.create_user(dict(id="Walter Harp"))
except exceptions.CosmosResourceExistsError:
print("A user with that ID already exists.")
except exceptions.CosmosHttpResponseError as failure:
print("Failed to create user. Status code:{}".format(failure.status_code))
delete_container
Usuwanie kontenera.
delete_container(container: str | ContainerProxy | Dict[str, Any], populate_query_metrics: bool | None = None, **kwargs: Any) -> None
Parametry
- container
Identyfikator (nazwa) kontenera do usunięcia. Możesz przekazać identyfikator kontenera do usunięcia, <xref:azure.cosmos.database.ContainerProxy> wystąpienia lub dykt reprezentującego właściwości kontenera.
- session_token
- str
Token do użycia ze spójnością sesji.
- etag
- str
Wartość elementu ETag lub symbol wieloznaczny (*). Służy do sprawdzania, czy zasób uległ zmianie i działa zgodnie z warunkiem określonym przez parametr match_condition .
- match_condition
- MatchConditions
Warunek dopasowania do użycia na etagu.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Typ zwracany
Wyjątki
Jeśli nie można usunąć kontenera.
delete_user
Usuń określonego użytkownika z kontenera.
delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None
Parametry
- user
Identyfikator (nazwa), dykt reprezentujący właściwości lub <xref:azure.cosmos.database.UserProxy> wystąpienie użytkownika do usunięcia.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Typ zwracany
Wyjątki
Użytkownik nie został pomyślnie usunięty.
Użytkownik nie istnieje w kontenerze.
get_container_client
Pobierz kontener ContainerProxy dla kontenera o określonym identyfikatorze (nazwie).
get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy
Parametry
- container
Identyfikator (nazwa) kontenera, <xref:azure.cosmos.database.ContainerProxy> wystąpienia lub dykt reprezentujący właściwości kontenera do pobrania.
Zwraca
Wystąpienie ContainerProxy reprezentujące pobraną bazę danych.
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
Przykłady
Pobierz istniejący kontener, który obsługuje błąd, jeśli wystąpią:
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
get_throughput
Pobierz obiekt ThroughputProperties dla tej bazy danych. Jeśli dla bazy danych nie ma już właściwości przepływności, zgłaszany jest wyjątek. :keyword Callable response_hook: Wywoływanie wywoływane z metadanymi odpowiedzi. :returns: PrzepływnośćWłaściwości dla bazy danych. :zgłasza błąd ~azure.cosmos.exceptions.CosmosHttpResponseError: nie ma właściwości przepływności dla kontenera lub
nie można pobrać właściwości przepływności.
get_throughput(**kwargs: Any) -> ThroughputProperties
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
get_user_client
Pobierz element UserProxy dla użytkownika o określonym identyfikatorze.
get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy
Parametry
- user
Identyfikator (nazwa), dykt reprezentujący właściwości lub <xref:azure.cosmos.database.UserProxy> wystąpienie użytkownika do pobrania.
Zwraca
Wystąpienie UserProxy reprezentujące pobranego użytkownika.
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
list_containers
Wyświetl listę kontenerów w bazie danych.
list_containers(max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametry
- max_item_count
Maksymalna liczba elementów do zwrócenia w operacji wyliczania.
- session_token
- str
Token do użycia ze spójnością sesji.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Iterable właściwości kontenera (dykt).
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
Przykłady
Wyświetl listę wszystkich kontenerów w bazie danych:
database = client.get_database_client(database_name)
for container in database.list_containers():
print("Container ID: {}".format(container['id']))
list_users
Wyświetl listę wszystkich użytkowników w kontenerze.
list_users(max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametry
- max_item_count
Maksymalna liczba użytkowników do zwrócenia w operacji wyliczania.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Iterable właściwości użytkownika (dykt).
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
query_containers
Wyświetl listę właściwości kontenerów w bieżącej bazie danych.
query_containers(query: str | None = None, parameters: List[str] | None = None, max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametry
- query
Zapytanie SQL usługi Azure Cosmos DB do wykonania.
- parameters
Opcjonalna tablica parametrów zapytania. Ignorowane, jeśli nie podano kwerendy.
- max_item_count
Maksymalna liczba elementów do zwrócenia w operacji wyliczania.
- session_token
- str
Token do użycia ze spójnością sesji.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Iterable właściwości kontenera (dykt).
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
query_users
Zwróć wszystkich użytkowników pasujących do danego zapytania.
query_users(query: str, parameters: List[str] | None = None, max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametry
- query
Zapytanie SQL usługi Azure Cosmos DB do wykonania.
- parameters
Opcjonalna tablica parametrów zapytania. Ignorowane, jeśli nie podano kwerendy.
- max_item_count
Maksymalna liczba użytkowników do zwrócenia w operacji wyliczania.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Iterable właściwości użytkownika (dykt).
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
read
Odczytywanie właściwości bazy danych.
read(populate_query_metrics: bool | None = None, **kwargs: Any) -> Dict[str, Any]
Parametry
- session_token
- str
Token do użycia ze spójnością sesji.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Typ zwracany
Wyjątki
Jeśli nie można pobrać danej bazy danych.
read_offer
Pobierz obiekt ThroughputProperties dla tej bazy danych. Jeśli dla bazy danych nie ma już właściwości przepływności, zgłaszany jest wyjątek. :keyword Callable response_hook: Wywoływanie wywoływane z metadanymi odpowiedzi. :returns: PrzepływnośćWłaściwości dla bazy danych. :zgłasza błąd ~azure.cosmos.exceptions.CosmosHttpResponseError: nie ma właściwości przepływności dla kontenera lub
nie można pobrać właściwości przepływności.
read_offer(**kwargs: Any) -> ThroughputProperties
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
replace_container
Zresetuj właściwości kontenera.
Zmiany właściwości są utrwalane natychmiast. Wszystkie nieokreślone właściwości zostaną zresetowane do wartości domyślnych.
replace_container(container: str | ContainerProxy | Dict[str, Any], partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> ContainerProxy
Parametry
- container
Identyfikator (nazwa), dykt reprezentujący właściwości lub <xref:azure.cosmos.database.ContainerProxy> wystąpienie kontenera do zastąpienia.
- partition_key
Klucz partycji do użycia dla kontenera.
- indexing_policy
Zasady indeksowania, które mają być stosowane do kontenera.
- default_ttl
Domyślny czas wygaśnięcia (TTL) dla elementów w kontenerze. Jeśli nie zostanie określona, elementy nie wygasną.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- populate_query_metrics
Włącz zwracanie metryk zapytania w nagłówkach odpowiedzi.
- session_token
- str
Token do użycia ze spójnością sesji.
- etag
- str
Wartość elementu ETag lub symbol wieloznaczny (*). Służy do sprawdzania, czy zasób uległ zmianie i działa zgodnie z warunkiem określonym przez parametr match_condition .
- match_condition
- MatchConditions
Warunek dopasowania do użycia na etagu.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
- analytical_storage_ttl
- int
Czas wygaśnięcia magazynu analitycznego (TTL) dla elementów w kontenerze. Wartość None pozostawia magazyn analityczny wyłączony, a wartość -1 włącza magazyn analityczny bez czasu wygaśnięcia. Należy pamiętać, że magazyn analityczny można włączyć tylko na kontach z włączoną obsługą Synapse Link.
Zwraca
Wystąpienie ContainerProxy reprezentujące kontener po zakończeniu zamiany.
Typ zwracany
Wyjątki
Podniesione, jeśli nie można zamienić kontenera. Dotyczy to również tego, czy kontener o podanym identyfikatorze nie istnieje.
Przykłady
Zresetuj właściwość TTL w kontenerze i wyświetl zaktualizowane właściwości:
# Set the TTL on the container to 3600 seconds (one hour)
database.replace_container(container, partition_key=PartitionKey(path='/productName'), default_ttl=3600)
# Display the new TTL setting for the container
container_props = database.get_container_client(container_name).read()
print("New container TTL: {}".format(json.dumps(container_props['defaultTtl'])))
replace_throughput
Zastąp przepływność na poziomie bazy danych.
replace_throughput(throughput: int | ThroughputProperties | None, **kwargs: Any) -> ThroughputProperties
Parametry
- throughput
Przepływność do ustawienia (liczba całkowita).
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
PrzepływnośćWłaściwości dla bazy danych, zaktualizowane o nową przepływność.
Typ zwracany
Wyjątki
Jeśli dla bazy danych nie istnieją żadne właściwości przepływności lub nie można zaktualizować właściwości przepływności.
replace_user
Zastępuje określonego użytkownika, jeśli istnieje w kontenerze.
replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametry
- user
Identyfikator (nazwa), dykt reprezentujący właściwości lub <xref:azure.cosmos.database.UserProxy> wystąpienie użytkownika do zastąpienia.
- body
Obiekt przypominający dykt reprezentujący użytkownika, który ma zastąpić.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Wystąpienie UserProxy reprezentujące użytkownika po zastąpieniu przeszedł.
Typ zwracany
Wyjątki
Jeśli zamiana nie powiodła się lub użytkownik o podanym identyfikatorze nie istnieje.
upsert_user
Wstaw lub zaktualizuj określonego użytkownika.
Jeśli użytkownik już istnieje w kontenerze, zostanie zastąpiony. Jeśli użytkownik jeszcze nie istnieje, zostanie wstawiony.
upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametry
- body
Obiekt przypominający dykt reprezentujący użytkownika w celu zaktualizowania lub wstawienia.
- response_hook
- Callable
Wywoływany element z metadanymi odpowiedzi.
Zwraca
Wystąpienie userProxy reprezentujące użytkownika upserted.
Typ zwracany
Wyjątki
Jeśli dany użytkownik nie może zostać rozbudowany.
Azure SDK for Python