Verwalten von Snowflake-Konten und verwaltete Konten mit Python¶
Sie können Python verwenden, um Konten und verwaltete Konten in Snowflake zu verwalten.
Voraussetzungen¶
Die Beispiele in diesem Thema gehen davon aus, dass Sie Code hinzugefügt haben, um eine Verbindung zu Snowflake herzustellen und ein Root
-Objekt zu erstellen, von dem aus Sie die Snowflake Python APIs verwenden können.
Beispielsweise verwendet der folgende Code Verbindungsparameter, die in einer Konfigurationsdatei definiert sind, um eine Verbindung zu Snowflake zu erstellen:
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Unter Verwendung des resultierenden Session
-Objekts erstellt der Code ein Root
-Objekt, das die Typen und Methoden der API verwendet. Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake mit dem Snowflake Python APIs.
Verwalten von Konten¶
Sie können Konten in Ihrer Snowflake-Organisation verwalten. Einen Überblick über die Konten in Snowflake finden Sie unter Verwalten von Konten in Ihrer Organisation.
Die Snowflake Python APIs stellt Konten mit zwei verschiedenen Typen dar:
Account
: Zeigt die Eigenschaften eines Kontos an, wie z. B. seinen Namensbezeichner, den Anmeldenamen und das Kennwort des ersten administrativen Benutzers und seine Snowflake Edition.AccountResource
: Stellt Methoden zur Verfügung, mit denen Sie ein entsprechendesAccount
-Objekt abbrufen und das Konto löschen und seine Löschung wieder aufheben können.
Erstellen eines Kontos¶
Um ein Konto zu erstellen, erstellen Sie zunächst ein Account
-Objekt und dann ein AccountCollection
-Objekt aus dem API Root
-Objekt. Fügen Sie mit AccountCollection.create
das neue Konto zu Snowflake hinzu.
Der Code im folgenden Beispiel erstellt ein Account
-Objekt, das ein Konto namens my_account1
mit den angegebenen Eigenschaften des Kontos darstellt:
from snowflake.core.account import Account
my_account = Account(
name="my_account1",
admin_name="admin",
admin_password="TestPassword1",
first_name="Jane",
last_name="Smith",
email="myemail@myorg.org",
edition="ENTERPRISE",
region="aws_us_west_2",
comment="creating my account",
)
root.accounts.create(my_account)
Aufrufen von Kontodaten¶
Sie können Informationen über ein Konto abrufen, indem Sie die AccountResource.fetch
-Methode aufrufen, die ein Account
-Objekt zurückgibt.
Der Code im folgenden Beispiel ruft Informationen über ein Konto namens my_account1
ab:
my_account = root.accounts["my_account1"].fetch()
print(my_account.to_dict())
Auflisten von Konten¶
Sie können Konten mit der AccountCollection.iter
-Methode auflisten, die einen PagedIter
-Iterator von Account
-Objekten zurückgibt.
Der Code im folgenden Beispiel listet Konten auf, deren Name mit my
beginnt, und gibt den Namen jedes einzelnen aus:
account_iter = root.accounts.iter(like="my%") # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
Der Code im folgenden Beispiel setzt den optionalen history=True
-Parameter, um einen Verlauf der Konten aufzulisten, einschließlich gelöschter Konten, die noch nicht gelöscht wurden.
account_iter = root.accounts.iter(history=True) # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
Ausführen von Kontooperationen¶
Sie können gängige Kontooperationen, wie z. B. das Löschen und Rückgängigmachen der Löschung eines Kontos, mit einem AccountResource
-Objekt durchführen.
Um die Operationen zu demonstrieren, die Sie mit einer Ressourcekonto durchführen können, führt der Code im folgenden Beispiel Folgendes aus:
Ruft das
my_account1
-Konteressourcenobjekt ab.Löscht das Konto mit dem angegebenen Übergangsfrist, d. h. der Anzahl der Tage, in denen das Konto wiederhergestellt werden kann („undropped“).
Hebt die Löschung des Kontos auf.
my_account_res = root.accounts["my_account1"]
my_account_res.drop(grace_period_in_days=4)
my_account_res.undrop()
Verwalten von verwalteten Konten¶
Sie können von Snowflake verwaltete Konten verwalten, die derzeit von Datenanbietern verwendet werden, um Lesekonten für ihre Kunden zu erstellen. Weitere Informationen dazu finden Sie unter Leserkonten verwalten.
Die Snowflake Python APIs stellt verwaltete Konten mit zwei verschiedenen Typen dar:
ManagedAccount
: Zeigt die Eigenschaften eines verwalteten Kontos an, z. B. seinen Kontobezeichner, den Anmeldenamen und das Kennwort seines ersten administrativen Benutzers und seinen Kontotyp.ManagedAccountResource
: Zeigt Methoden an, mit denen Sie ein entsprechendesManagedAccount
-Objekt abrufen und das verwaltete Konto löschen können.
Erstellen eines verwalteten Kontos¶
Um ein verwaltetes Konto zu erstellen, legen Sie zunächst ein ManagedAccount
-Objekt an und erstellen dann ein ManagedAccountCollection
-Objekt aus dem API Root
-Objekt. Fügen Sie mit ManagedAccountCollection.create
das neue verwaltete Konto zu Snowflake hinzu.
Der Code im folgenden Beispiel erstellt ein ManagedAccount
-Objekt, das ein verwaltetes Konto namens reader_acct1
mit den angegebenen Eigenschaften des Kontos darstellt:
from snowflake.core.managed_account import ManagedAccount
my_managed_account = ManagedAccount(
name="reader_acct1",
admin_name="admin",
admin_password="TestPassword1",
type="READER",
comment="creating my managed account",
)
root.managed_accounts.create(my_managed_account)
Details zum verwalteten Konto abrufen¶
Sie können Informationen über ein verwaltetes Konto abrufen, indem Sie die ManagedAccountResource.fetch
-Methode aufrufen, die ein ManagedAccount
-Objekt zurückgibt.
Der Code im folgenden Beispiel ruft Informationen über ein verwaltetes Konto namens reader_acct1
ab:
my_managed_account = root.managed_accounts["reader_acct1"].fetch()
print(my_managed_account.to_dict())
Auflisten von verwalteten Konten¶
Sie können verwaltete Konten mit der ManagedAccountCollection.iter
-Methode auflisten, die einen PagedIter
-Iterator von ManagedAccount
-Objekten zurückgibt.
Der Code im folgenden Beispiel listet verwaltete Konten auf, deren Name mit reader
beginnt, und gibt den Namen jedes einzelnen aus:
account_iter = root.managed_accounts.iter(like="reader%") # returns a PagedIter[ManagedAccount]
for account_obj in account_iter:
print(account_obj.name)
Löschen eines verwalteten Kontos¶
Sie können ein verwaltetes Konto mit einem ManagedAccountResource
-Objekt löschen.
Der Code im folgenden Beispiel ruft das reader_acct1
-Ressourcenobjekt für das verwaltete Konto ab und löscht dann das Konto.
my_managed_account_res = root.managed_accounts["reader_acct1"]
my_managed_account_res.drop()