DatabaseProxy Klasa
Interfejs umożliwiający interakcję z określoną bazą danych.
Ta klasa nie powinna być tworzone bezpośrednio. Zamiast tego należy użyć 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 niektórych 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 adresowalny identyfikator URI zasobu.
_etag: tag zasobu wymagany do optymistycznej kontroli współbieżności.
_colls: adresowalna ścieżka zasobu kolekcji.
_users: adresowalna ścieżka 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ę 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 |
Usuń kontener. |
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 istnieją już właściwości przepływności, zostanie zgłoszony wyjątek. :słowo kluczowe Wywołujące response_hook: wywoływane z metadanymi odpowiedzi. :zwraca: PrzepływnośćWłaściwości dla bazy danych. :zgłasza ~azure.cosmos.exceptions.CosmosHttpResponseError: dla kontenera nie istnieją właściwości przepływności lub nie można pobrać właściwości przepływności. |
get_user_client |
Pobierz wartość 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 |
Odczytaj właściwości bazy danych. |
read_offer |
Pobierz obiekt ThroughputProperties dla tej bazy danych. Jeśli dla bazy danych nie istnieją już właściwości przepływności, zostanie zgłoszony wyjątek. :słowo kluczowe Wywołujące response_hook: wywoływane z metadanymi odpowiedzi. :zwraca: PrzepływnośćWłaściwości dla bazy danych. :zgłasza ~azure.cosmos.exceptions.CosmosHttpResponseError: dla kontenera nie istnieją właściwości przepływności 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ą natychmiast utrwalane. Wszystkie nieokreślone właściwości zostaną zresetowane do ich 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 wygasają.
- offer_throughput
- int lub <xref:azure.cosmos.ThroughputProperties.>
Aprowizowana przepływność dla tej oferty.
- unique_key_policy
Unikatowe zasady klucza do zastosowania do kontenera.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- session_token
- str
Token do użycia z spójnością sesji.
- etag
- str
Wartość 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łanie wywoływane przy użyciu metadanych odpowiedzi.
- analytical_storage_ttl
- int
Czas przechowywania analitycznego na żywo (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)
Utwórz kontener 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ę 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 wygasają.
- populate_query_metrics
Włącz zwracanie metryk zapytań w nagłówkach odpowiedzi.
- offer_throughput
Aprowizowana przepływność dla tej oferty.
- unique_key_policy
Unikatowe zasady klucza do zastosowania do kontenera.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- session_token
- str
Token do użycia z spójnością sesji.
- etag
- str
Wartość 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łanie wywoływane przy użyciu metadanych odpowiedzi.
- analytical_storage_ttl
- int
Czas przechowywania analitycznego na żywo (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łanie wywoływane przy użyciu metadanych 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
Utwórz 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
Usuń kontener.
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, ContainerProxy wystąpienia lub dyktu reprezentującego właściwości kontenera.
- session_token
- str
Token do użycia z spójnością sesji.
- etag
- str
Wartość 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łanie wywoływane przy użyciu metadanych 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 UserProxy wystąpienie użytkownika do usunięcia.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych 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, 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, obsługując 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 istnieją już właściwości przepływności, zostanie zgłoszony wyjątek. :słowo kluczowe Wywołujące response_hook: wywoływane z metadanymi odpowiedzi. :zwraca: PrzepływnośćWłaściwości dla bazy danych. :zgłasza ~azure.cosmos.exceptions.CosmosHttpResponseError: dla kontenera nie istnieją właściwości przepływności 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 wartość 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 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 wyliczenia.
- session_token
- str
Token do użycia z spójnością sesji.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych odpowiedzi.
Zwraca
Iterable właściwości kontenera (dicts).
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, które mają zostać zwrócone w operacji wyliczenia.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych 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 wyliczenia.
- session_token
- str
Token do użycia z spójnością sesji.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych odpowiedzi.
Zwraca
Iterable właściwości kontenera (dicts).
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, które mają zostać zwrócone w operacji wyliczenia.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych odpowiedzi.
Zwraca
Iterable właściwości użytkownika (dykt).
Typ zwracany
Wyjątki
Tworzenie kontenera nie powiodło się.
read
Odczytaj 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 z spójnością sesji.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych 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 istnieją już właściwości przepływności, zostanie zgłoszony wyjątek. :słowo kluczowe Wywołujące response_hook: wywoływane z metadanymi odpowiedzi. :zwraca: PrzepływnośćWłaściwości dla bazy danych. :zgłasza ~azure.cosmos.exceptions.CosmosHttpResponseError: dla kontenera nie istnieją właściwości przepływności 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ą natychmiast utrwalane. Wszystkie nieokreślone właściwości zostaną zresetowane do ich 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 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 wygasają.
- conflict_resolution_policy
Zasady rozwiązywania konfliktów, które mają być stosowane do kontenera.
- populate_query_metrics
Włącz zwracanie metryk zapytań w nagłówkach odpowiedzi.
- session_token
- str
Token do użycia z spójnością sesji.
- etag
- str
Wartość 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łanie wywoływane przy użyciu metadanych odpowiedzi.
- analytical_storage_ttl
- int
Czas przechowywania analitycznego na żywo (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. Obejmuje to, czy kontener o danym 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łanie wywoływane przy użyciu metadanych odpowiedzi.
Zwraca
PrzepływnośćWłaściwości dla bazy danych, zaktualizowana 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 UserProxy wystąpienie użytkownika do zastąpienia.
- body
Obiekt przypominający dykt reprezentujący użytkownika do zastąpienia.
- response_hook
- Callable
Wywołanie wywoływane przy użyciu metadanych 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łanie wywoływane przy użyciu metadanych odpowiedzi.
Zwraca
Wystąpienie UserProxy reprezentujące użytkownika upserted.
Typ zwracany
Wyjątki
Jeśli dany użytkownik nie może być upserted.
Azure SDK for Python