DatabaseProxy Classe
Interface permettant d’interagir avec une base de données spécifique.
Cette classe ne doit pas être instanciée directement. Utilisez plutôt la <xref:CosmosClient.get_database_client> méthode .
Une base de données contient un ou plusieurs conteneurs, chacun pouvant contenir des éléments, des procédures stockées, des déclencheurs et des fonctions définies par l’utilisateur.
Une base de données peut également avoir des utilisateurs associés, chacun étant configuré avec un ensemble d’autorisations pour accéder à certains conteneurs, procédures stockées, déclencheurs, fonctions définies par l’utilisateur ou éléments.
Une base de données d’API SQL Azure Cosmos DB possède les propriétés générées par le système suivantes. Ces propriétés sont en lecture seule :
_rid : ID de ressource.
_ts : date de la dernière mise à jour de la ressource. La valeur est un horodateur.
_self : URI adressable unique pour la ressource.
_etag : etag de ressource requis pour le contrôle d’accès concurrentiel optimiste.
_colls : chemin adressable de la ressource de collections.
_users : chemin adressable de la ressource users.
- Héritage
-
builtins.objectDatabaseProxy
Constructeur
DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)
Paramètres
- client_connection
- <xref:ClientSession>
Client à partir duquel cette base de données a été récupérée.
- properties
Variables
- id
ID (nom) de la base de données.
Méthodes
create_container |
Créez un conteneur avec l’ID (nom) donné. Si un conteneur avec l’ID donné existe déjà, une erreur CosmosResourceExistsError est déclenchée. |
create_container_if_not_exists |
Créez un conteneur s’il n’existe pas déjà. Si le conteneur existe déjà, les paramètres existants sont retournés. Remarque : elle n’case activée ni ne met à jour les paramètres de conteneur existants ni le débit d’offre s’ils diffèrent de ce qui a été passé dans la méthode. |
create_user |
Créez un utilisateur dans le conteneur. Pour mettre à jour ou remplacer un utilisateur existant, utilisez la <xref:ContainerProxy.upsert_user> méthode . |
delete_container |
Supprimer un conteneur. |
delete_user |
Supprimez l’utilisateur spécifié du conteneur. |
get_container_client |
Obtenez un ContainerProxy pour un conteneur avec l’ID (nom) spécifié. |
get_throughput |
Obtenez l’objet ThroughputProperties pour cette base de données. Si aucune propriété de débit n’existe déjà pour la base de données, une exception est levée. :mot clé callable response_hook : callable appelé avec les métadonnées de réponse. :returns: ThroughputProperties pour la base de données. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError : aucune propriété de débit n’existe pour le conteneur ou les propriétés de débit n’ont pas pu être récupérées. |
get_user_client |
Obtenez un UserProxy pour un utilisateur avec l’ID spécifié. |
list_containers |
Répertoriez les conteneurs dans la base de données. |
list_users |
Répertorier tous les utilisateurs du conteneur. |
query_containers |
Répertorier les propriétés des conteneurs dans la base de données active. |
query_users |
Retourne tous les utilisateurs correspondant à la requête donnée. |
read |
Lisez les propriétés de la base de données. |
read_offer |
Obtenez l’objet ThroughputProperties pour cette base de données. Si aucune propriété de débit n’existe déjà pour la base de données, une exception est levée. :mot clé callable response_hook : callable appelé avec les métadonnées de réponse. :returns: ThroughputProperties pour la base de données. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError : aucune propriété de débit n’existe pour le conteneur ou les propriétés de débit n’ont pas pu être récupérées. |
replace_container |
Réinitialisez les propriétés du conteneur. Les modifications de propriété sont conservées immédiatement. Toutes les propriétés non spécifiées sont réinitialisées à leurs valeurs par défaut. |
replace_throughput |
Remplacez le débit au niveau de la base de données. |
replace_user |
Remplace l’utilisateur spécifié s’il existe dans le conteneur. |
upsert_user |
Insérez ou mettez à jour l’utilisateur spécifié. Si l’utilisateur existe déjà dans le conteneur, il est remplacé. Si l’utilisateur n’existe pas déjà, il est inséré. |
create_container
Créez un conteneur avec l’ID (nom) donné.
Si un conteneur avec l’ID donné existe déjà, une erreur CosmosResourceExistsError est déclenchée.
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
Paramètres
- id
ID (nom) du conteneur à créer.
- partition_key
Clé de partition à utiliser pour le conteneur.
- indexing_policy
Stratégie d’indexation à appliquer au conteneur.
- default_ttl
Durée de vie (TTL) par défaut pour les éléments du conteneur. S’ils ne sont pas spécifiés, les éléments n’expirent pas.
- offer_throughput
- int ou <xref:azure.cosmos.ThroughputProperties.>
Débit provisionné pour cette offre.
- unique_key_policy
Stratégie de clé unique à appliquer au conteneur.
- conflict_resolution_policy
Stratégie de résolution des conflits à appliquer au conteneur.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- etag
- str
Spécifiez une valeur ETag ou le caractère générique *. Permet de case activée si la ressource a changé et d’agir selon la condition spécifiée par le paramètre match_condition.
- match_condition
- MatchConditions
Condition de correspondance à utiliser sur l’etag.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
- analytical_storage_ttl
- int
Durée de vie (TTL) du magasin analytique pour les éléments du conteneur. La valeur None désactive le stockage analytique et la valeur -1 active le stockage analytique sans durée de vie. Notez que le stockage analytique ne peut être activé que sur Synapse Link comptes activés.
Retours
Une instance ContainerProxy représentant le nouveau conteneur.
Type de retour
Exceptions
Échec de la création du conteneur.
Exemples
Créez un conteneur avec les paramètres par défaut :
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)
Créer un conteneur avec des paramètres spécifiques ; dans ce cas, une clé de partition personnalisée :
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
Créez un conteneur s’il n’existe pas déjà.
Si le conteneur existe déjà, les paramètres existants sont retournés. Remarque : elle n’case activée ni ne met à jour les paramètres de conteneur existants ni le débit d’offre s’ils diffèrent de ce qui a été passé dans la méthode.
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
Paramètres
- id
ID (nom) du conteneur à lire ou à créer.
- partition_key
Clé de partition à utiliser pour le conteneur.
- indexing_policy
Stratégie d’indexation à appliquer au conteneur.
- default_ttl
Durée de vie (TTL) par défaut pour les éléments du conteneur. S’ils ne sont pas spécifiés, les éléments n’expirent pas.
- populate_query_metrics
Activer le retour de métriques de requête dans les en-têtes de réponse.
- offer_throughput
Débit provisionné pour cette offre.
- unique_key_policy
Stratégie de clé unique à appliquer au conteneur.
- conflict_resolution_policy
Stratégie de résolution des conflits à appliquer au conteneur.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- etag
- str
Spécifiez une valeur ETag ou le caractère générique *. Permet de case activée si la ressource a changé et d’agir selon la condition spécifiée par le paramètre match_condition.
- match_condition
- MatchConditions
Condition de correspondance à utiliser sur l’etag.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
- analytical_storage_ttl
- int
Durée de vie (TTL) du magasin analytique pour les éléments du conteneur. La valeur None désactive le stockage analytique et la valeur -1 active le stockage analytique sans durée de vie. Notez que le stockage analytique ne peut être activé que sur Synapse Link comptes activés.
Retours
Une instance ContainerProxy représentant le conteneur.
Type de retour
Exceptions
Échec de la lecture ou de la création du conteneur.
create_user
Créez un utilisateur dans le conteneur.
Pour mettre à jour ou remplacer un utilisateur existant, utilisez la <xref:ContainerProxy.upsert_user> méthode .
create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Paramètres
- body
Objet de type dict avec une clé d’ID et une valeur représentant l’utilisateur à créer. L’ID utilisateur doit être unique au sein de la base de données et comporter au maximum 255 caractères.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
UserProxy instance représentant le nouvel utilisateur.
Type de retour
Exceptions
Si l’utilisateur donné n’a pas pu être créé.
Exemples
Créez un utilisateur de base de données :
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
Supprimer un conteneur.
delete_container(container: str | ContainerProxy | Dict[str, Any], populate_query_metrics: bool | None = None, **kwargs: Any) -> None
Paramètres
- container
ID (nom) du conteneur à supprimer. Vous pouvez transmettre l’ID du conteneur à supprimer, un <xref:azure.cosmos.database.ContainerProxy> instance ou un dict qui représente les propriétés du conteneur.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- etag
- str
Spécifiez une valeur ETag ou le caractère générique *. Permet de case activée si la ressource a changé et d’agir selon la condition spécifiée par le paramètre match_condition.
- match_condition
- MatchConditions
Condition de correspondance à utiliser sur l’etag.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Type de retour
Exceptions
Si le conteneur n’a pas pu être supprimé.
delete_user
Supprimez l’utilisateur spécifié du conteneur.
delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None
Paramètres
- user
ID (nom), dict représentant les propriétés ou <xref:azure.cosmos.database.UserProxy> instance de l’utilisateur à supprimer.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Type de retour
Exceptions
L’utilisateur n’a pas été supprimé.
L’utilisateur n’existe pas dans le conteneur.
get_container_client
Obtenez un ContainerProxy pour un conteneur avec l’ID (nom) spécifié.
get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy
Paramètres
- container
ID (nom) du conteneur, d’un <xref:azure.cosmos.database.ContainerProxy> instance ou d’un dict qui représente les propriétés du conteneur à récupérer.
Retours
Une instance ContainerProxy représentant la base de données récupérée.
Type de retour
Exceptions
Échec de la création du conteneur.
Exemples
Obtenez un conteneur existant, en gérant une défaillance si elle est rencontrée :
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
get_throughput
Obtenez l’objet ThroughputProperties pour cette base de données. Si aucune propriété de débit n’existe déjà pour la base de données, une exception est levée. :mot clé callable response_hook : callable appelé avec les métadonnées de réponse. :returns: ThroughputProperties pour la base de données. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError : aucune propriété de débit n’existe pour le conteneur ou
les propriétés de débit n’ont pas pu être récupérées.
get_throughput(**kwargs: Any) -> ThroughputProperties
Type de retour
Exceptions
Échec de la création du conteneur.
get_user_client
Obtenez un UserProxy pour un utilisateur avec l’ID spécifié.
get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy
Paramètres
- user
ID (nom), dict représentant les propriétés ou <xref:azure.cosmos.database.UserProxy> instance de l’utilisateur à récupérer.
Retours
UserProxy instance représentant l’utilisateur récupéré.
Type de retour
Exceptions
Échec de la création du conteneur.
list_containers
Répertoriez les conteneurs dans la base de données.
list_containers(max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Paramètres
- max_item_count
Nombre maximal d’éléments à retourner dans l’opération d’énumération.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
Itérable de propriétés de conteneur (dicts).
Type de retour
Exceptions
Échec de la création du conteneur.
Exemples
Répertorier tous les conteneurs de la base de données :
database = client.get_database_client(database_name)
for container in database.list_containers():
print("Container ID: {}".format(container['id']))
list_users
Répertorier tous les utilisateurs du conteneur.
list_users(max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Paramètres
- max_item_count
Nombre maximal d’utilisateurs à retourner dans l’opération d’énumération.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
Itérable des propriétés utilisateur (dicts).
Type de retour
Exceptions
Échec de la création du conteneur.
query_containers
Répertorier les propriétés des conteneurs dans la base de données active.
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]]
Paramètres
- query
Requête SQL Azure Cosmos DB à exécuter.
- parameters
Tableau facultatif de paramètres de la requête. Ignoré si aucune requête n’est fournie.
- max_item_count
Nombre maximal d’éléments à retourner dans l’opération d’énumération.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
Itérable de propriétés de conteneur (dicts).
Type de retour
Exceptions
Échec de la création du conteneur.
query_users
Retourne tous les utilisateurs correspondant à la requête donnée.
query_users(query: str, parameters: List[str] | None = None, max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
Paramètres
- query
Requête SQL Azure Cosmos DB à exécuter.
- parameters
Tableau facultatif de paramètres de la requête. Ignoré si aucune requête n’est fournie.
- max_item_count
Nombre maximal d’utilisateurs à retourner dans l’opération d’énumération.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
Itérable des propriétés utilisateur (dicts).
Type de retour
Exceptions
Échec de la création du conteneur.
read
Lisez les propriétés de la base de données.
read(populate_query_metrics: bool | None = None, **kwargs: Any) -> Dict[str, Any]
Paramètres
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Type de retour
Exceptions
Si la base de données donnée n’a pas pu être récupérée.
read_offer
Obtenez l’objet ThroughputProperties pour cette base de données. Si aucune propriété de débit n’existe déjà pour la base de données, une exception est levée. :mot clé callable response_hook : callable appelé avec les métadonnées de réponse. :returns: ThroughputProperties pour la base de données. :raises ~azure.cosmos.exceptions.CosmosHttpResponseError : aucune propriété de débit n’existe pour le conteneur ou
les propriétés de débit n’ont pas pu être récupérées.
read_offer(**kwargs: Any) -> ThroughputProperties
Type de retour
Exceptions
Échec de la création du conteneur.
replace_container
Réinitialisez les propriétés du conteneur.
Les modifications de propriété sont conservées immédiatement. Toutes les propriétés non spécifiées sont réinitialisées à leurs valeurs par défaut.
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
Paramètres
- container
ID (nom), dict qui représente les propriétés ou <xref:azure.cosmos.database.ContainerProxy> instance du conteneur à remplacer.
- partition_key
Clé de partition à utiliser pour le conteneur.
- indexing_policy
Stratégie d’indexation à appliquer au conteneur.
- default_ttl
Durée de vie (TTL) par défaut pour les éléments du conteneur. S’ils ne sont pas spécifiés, les éléments n’expirent pas.
- conflict_resolution_policy
Stratégie de résolution des conflits à appliquer au conteneur.
- populate_query_metrics
Activer le retour de métriques de requête dans les en-têtes de réponse.
- session_token
- str
Jeton à utiliser avec la cohérence de session.
- etag
- str
Spécifiez une valeur ETag ou le caractère générique *. Permet de case activée si la ressource a changé et d’agir selon la condition spécifiée par le paramètre match_condition.
- match_condition
- MatchConditions
Condition de correspondance à utiliser sur l’etag.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
- analytical_storage_ttl
- int
Durée de vie (TTL) du magasin analytique pour les éléments du conteneur. La valeur None désactive le stockage analytique et la valeur -1 active le stockage analytique sans durée de vie. Notez que le stockage analytique ne peut être activé que sur Synapse Link comptes activés.
Retours
Un containerProxy instance représentant le conteneur une fois le remplacement terminé.
Type de retour
Exceptions
Déclenché si le conteneur n’a pas pu être remplacé. Cela inclut si le conteneur avec l’ID donné n’existe pas.
Exemples
Réinitialisez la propriété TTL sur un conteneur et affichez les propriétés mises à jour :
# 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
Remplacez le débit au niveau de la base de données.
replace_throughput(throughput: int | ThroughputProperties | None, **kwargs: Any) -> ThroughputProperties
Paramètres
- throughput
Débit à définir (entier).
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
ThroughputProperties pour la base de données, mise à jour avec un nouveau débit.
Type de retour
Exceptions
Si aucune propriété de débit n’existe pour la base de données ou si les propriétés de débit n’ont pas pu être mises à jour.
replace_user
Remplace l’utilisateur spécifié s’il existe dans le conteneur.
replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy
Paramètres
- user
ID (nom), dict représentant les propriétés ou <xref:azure.cosmos.database.UserProxy> instance de l’utilisateur à remplacer.
- body
Objet de type dict qui représente l’utilisateur à remplacer.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
UserProxy instance représentant l’utilisateur après le remplacement.
Type de retour
Exceptions
Si le remplacement a échoué ou si l’utilisateur avec l’ID donné n’existe pas.
upsert_user
Insérez ou mettez à jour l’utilisateur spécifié.
Si l’utilisateur existe déjà dans le conteneur, il est remplacé. Si l’utilisateur n’existe pas déjà, il est inséré.
upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Paramètres
- body
Objet de type dict qui représente l’utilisateur à mettre à jour ou à insérer.
- response_hook
- Callable
Appelable avec les métadonnées de réponse.
Retours
UserProxy instance représentant l’utilisateur upserted.
Type de retour
Exceptions
Si l’utilisateur donné n’a pas pu être upserted.
Azure SDK for Python