DatabaseProxy Classe
Interfaccia per interagire con un database specifico.
Questa classe non deve essere creata direttamente. Usare invece il <xref:CosmosClient.get_database_client> metodo .
Un database contiene uno o più contenitori, ognuno dei quali può contenere elementi, stored procedure, trigger e funzioni definite dall'utente.
Un database può anche avere utenti associati, ognuno dei quali è configurato con un set di autorizzazioni per l'accesso a determinati contenitori, stored procedure, trigger, funzioni definite dall'utente o elementi.
Un database DELL'API SQL di Azure Cosmos DB include le proprietà generate dal sistema seguenti. Queste proprietà sono di sola lettura:
_rid: ID risorsa.
_ts: quando la risorsa è stata aggiornata. Il valore è un timestamp.
_self: URI indirizzabile univoco per la risorsa.
_etag: l'etag delle risorse richiesto per il controllo di concorrenza ottimistica.
_colls: percorso indirizzabile della risorsa delle raccolte.
_users: percorso indirizzabile della risorsa utenti.
- Ereditarietà
-
builtins.objectDatabaseProxy
Costruttore
DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)
Parametri
- client_connection
- <xref:ClientSession>
Client da cui è stato recuperato il database.
- properties
Variabili
- id
ID (nome) del database.
Metodi
create_container |
Creare un nuovo contenitore con l'ID (nome) specificato. Se esiste già un contenitore con l'ID specificato, viene generato un oggetto CosmosResourceExistsError. |
create_container_if_not_exists |
Creare un contenitore se non esiste già. Se il contenitore esiste già, vengono restituite le impostazioni esistenti. Nota: non controlla o aggiorna le impostazioni del contenitore esistenti o offre velocità effettiva se differiscono da quelle passate al metodo. |
create_user |
Creare un nuovo utente nel contenitore. Per aggiornare o sostituire un utente esistente, usare il <xref:ContainerProxy.upsert_user> metodo . |
delete_container |
Elimina un contenitore. |
delete_user |
Eliminare l'utente specificato dal contenitore. |
get_container_client |
Ottenere un oggetto ContainerProxy per un contenitore con ID (nome) specificato. |
get_throughput |
Ottiene l'oggetto ThroughputProperties per questo database. Se non esiste già un oggetto ThroughputProperties per il database, viene generata un'eccezione. :keyword Callable response_hook: chiamata richiamabile con i metadati della risposta. :returns: ThroughputProperties per il database. :genera ~azure.cosmos.exceptions.CosmosHttpResponseError: non esistono proprietà di velocità effettiva per il contenitore o Impossibile recuperare le proprietà della velocità effettiva. |
get_user_client |
Ottenere un userProxy per un utente con l'ID specificato. |
list_containers |
Elencare i contenitori nel database. |
list_users |
Elencare tutti gli utenti nel contenitore. |
query_containers |
Elencare le proprietà per i contenitori nel database corrente. |
query_users |
Restituisce tutti gli utenti corrispondenti alla query specificata. |
read |
Leggere le proprietà del database. |
read_offer |
Ottiene l'oggetto ThroughputProperties per questo database. Se non esiste già un oggetto ThroughputProperties per il database, viene generata un'eccezione. :keyword Callable response_hook: chiamata richiamabile con i metadati della risposta. :returns: ThroughputProperties per il database. :genera ~azure.cosmos.exceptions.CosmosHttpResponseError: non esistono proprietà di velocità effettiva per il contenitore o Impossibile recuperare le proprietà della velocità effettiva. |
replace_container |
Reimpostare le proprietà del contenitore. Le modifiche alle proprietà vengono rese persistenti immediatamente. Tutte le proprietà non specificate verranno reimpostate nei valori predefiniti. |
replace_throughput |
Sostituire la velocità effettiva a livello di database. |
replace_user |
Sostituisce l'utente specificato, se presente nel contenitore. |
upsert_user |
Inserire o aggiornare l'utente specificato. Se l'utente esiste già nel contenitore, viene sostituito. Se l'utente non esiste già, viene inserito. |
create_container
Creare un nuovo contenitore con l'ID (nome) specificato.
Se esiste già un contenitore con l'ID specificato, viene generato un oggetto 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
Parametri
- id
ID (nome) del contenitore da creare.
- partition_key
Chiave di partizione da usare per il contenitore.
- indexing_policy
Criteri di indicizzazione da applicare al contenitore.
- default_ttl
Durata (TTL) predefinita per gli elementi nel contenitore. Se non specificato, gli elementi non scadono.
- offer_throughput
- int oppure <xref:azure.cosmos.ThroughputProperties.>
Velocità effettiva con provisioning per questa offerta.
- unique_key_policy
Criteri di chiave univoca da applicare al contenitore.
- conflict_resolution_policy
Criteri di risoluzione dei conflitti da applicare al contenitore.
- session_token
- str
Token da usare con coerenza della sessione.
- etag
- str
Valore ETag o il carattere jolly (*). Usato per verificare se la risorsa è stata modificata e agire in base alla condizione specificata dal parametro match_condition .
- match_condition
- MatchConditions
Condizione di corrispondenza da utilizzare sull'etag.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
- analytical_storage_ttl
- int
Durata (TTL) dell'archivio analitico per gli elementi nel contenitore. Il valore None lascia l'archiviazione analitica disattivata e il valore -1 attiva l'archiviazione analitica senza TTL. Si noti che l'archiviazione analitica può essere abilitata solo negli account abilitati Collegamento a Synapse.
Restituisce
Istanza containerProxy che rappresenta il nuovo contenitore.
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
Esempio
Creare un contenitore con le impostazioni predefinite:
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)
Creare un contenitore con impostazioni specifiche; in questo caso, una chiave di partizione personalizzata:
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
Creare un contenitore se non esiste già.
Se il contenitore esiste già, vengono restituite le impostazioni esistenti. Nota: non controlla o aggiorna le impostazioni del contenitore esistenti o offre velocità effettiva se differiscono da quelle passate al metodo.
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
Parametri
- id
ID (nome) del contenitore da leggere o creare.
- partition_key
Chiave di partizione da usare per il contenitore.
- indexing_policy
Criteri di indicizzazione da applicare al contenitore.
- default_ttl
Durata (TTL) predefinita per gli elementi nel contenitore. Se non specificato, gli elementi non scadono.
- populate_query_metrics
Abilitare la restituzione delle metriche di query nelle intestazioni di risposta.
- offer_throughput
Velocità effettiva con provisioning per questa offerta.
- unique_key_policy
Criteri di chiave univoca da applicare al contenitore.
- conflict_resolution_policy
Criteri di risoluzione dei conflitti da applicare al contenitore.
- session_token
- str
Token da usare con coerenza della sessione.
- etag
- str
Valore ETag o il carattere jolly (*). Usato per verificare se la risorsa è stata modificata e agire in base alla condizione specificata dal parametro match_condition .
- match_condition
- MatchConditions
Condizione di corrispondenza da utilizzare sull'etag.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
- analytical_storage_ttl
- int
Durata (TTL) dell'archivio analitico per gli elementi nel contenitore. Il valore None lascia l'archiviazione analitica disattivata e il valore -1 attiva l'archiviazione analitica senza TTL. Si noti che l'archiviazione analitica può essere abilitata solo negli account abilitati Collegamento a Synapse.
Restituisce
Istanza containerProxy che rappresenta il contenitore.
Tipo restituito
Eccezioni
Lettura o creazione del contenitore non riuscita.
create_user
Creare un nuovo utente nel contenitore.
Per aggiornare o sostituire un utente esistente, usare il <xref:ContainerProxy.upsert_user> metodo .
create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametri
- body
Oggetto dict-like con una chiave ID e un valore che rappresenta l'utente da creare. L'ID utente deve essere univoco all'interno del database e deve contenere non più di 255 caratteri.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Istanza userProxy che rappresenta il nuovo utente.
Tipo restituito
Eccezioni
Se non è stato possibile creare l'utente specificato.
Esempio
Creare un utente del database:
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
Elimina un contenitore.
delete_container(container: str | ContainerProxy | Dict[str, Any], populate_query_metrics: bool | None = None, **kwargs: Any) -> None
Parametri
- container
ID (nome) del contenitore da eliminare. È possibile passare l'ID del contenitore da eliminare, un'istanza <xref:azure.cosmos.database.ContainerProxy> o un dict che rappresenta le proprietà del contenitore.
- session_token
- str
Token da usare con coerenza della sessione.
- etag
- str
Valore ETag o il carattere jolly (*). Usato per verificare se la risorsa è stata modificata e agire in base alla condizione specificata dal parametro match_condition .
- match_condition
- MatchConditions
Condizione di corrispondenza da utilizzare sull'etag.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Tipo restituito
Eccezioni
Se non è stato possibile eliminare il contenitore.
delete_user
Eliminare l'utente specificato dal contenitore.
delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None
Parametri
- user
ID (nome), che rappresenta le proprietà o <xref:azure.cosmos.database.UserProxy> l'istanza dell'utente da eliminare.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Tipo restituito
Eccezioni
L'utente non è stato eliminato correttamente.
L'utente non esiste nel contenitore.
get_container_client
Ottenere un oggetto ContainerProxy per un contenitore con ID (nome) specificato.
get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy
Parametri
- container
ID (nome) del contenitore, di un'istanza <xref:azure.cosmos.database.ContainerProxy> o dict che rappresenta le proprietà del contenitore da recuperare.
Restituisce
Istanza containerProxy che rappresenta il database recuperato.
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
Esempio
Ottenere un contenitore esistente, gestendo un errore se rilevato:
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
get_throughput
Ottiene l'oggetto ThroughputProperties per questo database. Se non esiste già un oggetto ThroughputProperties per il database, viene generata un'eccezione. :keyword Callable response_hook: chiamata richiamabile con i metadati della risposta. :returns: ThroughputProperties per il database. :genera ~azure.cosmos.exceptions.CosmosHttpResponseError: non esistono proprietà di velocità effettiva per il contenitore o
Impossibile recuperare le proprietà della velocità effettiva.
get_throughput(**kwargs: Any) -> ThroughputProperties
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
get_user_client
Ottenere un userProxy per un utente con l'ID specificato.
get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy
Parametri
- user
ID (nome), che rappresenta le proprietà o <xref:azure.cosmos.database.UserProxy> l'istanza dell'utente da recuperare.
Restituisce
Istanza userProxy che rappresenta l'utente recuperato.
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
list_containers
Elencare i contenitori nel database.
list_containers(max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametri
- max_item_count
Numero massimo di elementi da restituire nell'operazione di enumerazione.
- session_token
- str
Token da usare con coerenza della sessione.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Iterabile di proprietà del contenitore (dict).
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
Esempio
Elencare tutti i contenitori nel database:
database = client.get_database_client(database_name)
for container in database.list_containers():
print("Container ID: {}".format(container['id']))
list_users
Elencare tutti gli utenti nel contenitore.
list_users(max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametri
- max_item_count
Numero massimo di utenti da restituire nell'operazione di enumerazione.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Iterabile di proprietà utente (dict).
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
query_containers
Elencare le proprietà per i contenitori nel database corrente.
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]]
Parametri
- query
Query SQL di Azure Cosmos DB da eseguire.
- parameters
Matrice facoltativa di parametri per la query. Ignorato se non viene specificata alcuna query.
- max_item_count
Numero massimo di elementi da restituire nell'operazione di enumerazione.
- session_token
- str
Token da usare con coerenza della sessione.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Iterabile di proprietà del contenitore (dict).
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
query_users
Restituisce tutti gli utenti corrispondenti alla query specificata.
query_users(query: str, parameters: List[str] | None = None, max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Parametri
- query
Query SQL di Azure Cosmos DB da eseguire.
- parameters
Matrice facoltativa di parametri per la query. Ignorato se non viene specificata alcuna query.
- max_item_count
Numero massimo di utenti da restituire nell'operazione di enumerazione.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Iterabile di proprietà utente (dict).
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
read
Leggere le proprietà del database.
read(populate_query_metrics: bool | None = None, **kwargs: Any) -> Dict[str, Any]
Parametri
- session_token
- str
Token da usare con coerenza della sessione.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Tipo restituito
Eccezioni
Se non è stato possibile recuperare il database specificato.
read_offer
Ottiene l'oggetto ThroughputProperties per questo database. Se non esiste già un oggetto ThroughputProperties per il database, viene generata un'eccezione. :keyword Callable response_hook: chiamata richiamabile con i metadati della risposta. :returns: ThroughputProperties per il database. :genera ~azure.cosmos.exceptions.CosmosHttpResponseError: non esistono proprietà di velocità effettiva per il contenitore o
Impossibile recuperare le proprietà della velocità effettiva.
read_offer(**kwargs: Any) -> ThroughputProperties
Tipo restituito
Eccezioni
Creazione del contenitore non riuscita.
replace_container
Reimpostare le proprietà del contenitore.
Le modifiche alle proprietà vengono rese persistenti immediatamente. Tutte le proprietà non specificate verranno reimpostate nei valori predefiniti.
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
Parametri
- container
ID (nome), che rappresenta le proprietà o <xref:azure.cosmos.database.ContainerProxy> l'istanza del contenitore da sostituire.
- partition_key
Chiave di partizione da usare per il contenitore.
- indexing_policy
Criteri di indicizzazione da applicare al contenitore.
- default_ttl
Durata (TTL) predefinita per gli elementi nel contenitore. Se non specificato, gli elementi non scadono.
- conflict_resolution_policy
Criteri di risoluzione dei conflitti da applicare al contenitore.
- populate_query_metrics
Abilitare la restituzione delle metriche di query nelle intestazioni di risposta.
- session_token
- str
Token da usare con coerenza della sessione.
- etag
- str
Valore ETag o il carattere jolly (*). Usato per verificare se la risorsa è stata modificata e agire in base alla condizione specificata dal parametro match_condition .
- match_condition
- MatchConditions
Condizione di corrispondenza da utilizzare sull'etag.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
- analytical_storage_ttl
- int
Durata (TTL) dell'archivio analitico per gli elementi nel contenitore. Il valore None lascia l'archiviazione analitica disattivata e il valore -1 attiva l'archiviazione analitica senza TTL. Si noti che l'archiviazione analitica può essere abilitata solo negli account abilitati Collegamento a Synapse.
Restituisce
Istanza containerProxy che rappresenta il contenitore dopo il completamento della sostituzione.
Tipo restituito
Eccezioni
Generato se non è stato possibile sostituire il contenitore. Ciò include se il contenitore con ID specificato non esiste.
Esempio
Reimpostare la proprietà TTL in un contenitore e visualizzare le proprietà aggiornate:
# 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
Sostituire la velocità effettiva a livello di database.
replace_throughput(throughput: int | ThroughputProperties | None, **kwargs: Any) -> ThroughputProperties
Parametri
- throughput
Velocità effettiva da impostare (un numero intero).
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
ThroughputProperties per il database, aggiornato con una nuova velocità effettiva.
Tipo restituito
Eccezioni
Se non esistono proprietà di velocità effettiva per il database o se non è stato possibile aggiornare le proprietà della velocità effettiva.
replace_user
Sostituisce l'utente specificato, se presente nel contenitore.
replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametri
- user
ID (nome), che rappresenta le proprietà o <xref:azure.cosmos.database.UserProxy> l'istanza dell'utente da sostituire.
- body
Oggetto dict-like che rappresenta l'utente da sostituire.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Istanza userProxy che rappresenta l'utente dopo che è stata sostituita.
Tipo restituito
Eccezioni
Se la sostituzione non è riuscita o l'utente con id specificato non esiste.
upsert_user
Inserire o aggiornare l'utente specificato.
Se l'utente esiste già nel contenitore, viene sostituito. Se l'utente non esiste già, viene inserito.
upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametri
- body
Oggetto simile a ct che rappresenta l'utente da aggiornare o inserire.
- response_hook
- Callable
Oggetto chiamabile richiamato con i metadati della risposta.
Restituisce
Istanza di UserProxy che rappresenta l'utente con stato in alto.
Tipo restituito
Eccezioni
Se l'utente specificato non è riuscito a essere ignorato.
Azure SDK for Python