PythonによるSnowflakeアカウントと管理アカウントの管理¶
Pythonを使って、Snowflakeのアカウントや管理アカウントを管理することができます。
前提条件¶
このトピックの例では、Snowflakeと接続するコードを追加して Root
オブジェクトを作成し、そこからSnowflake Python Snowflake Python APIs を使用することを想定しています。
たとえば、以下のコードでは、構成ファイルで定義された接続パラメーターを使用してSnowflakeへの接続を作成します。
from snowflake.core import Root from snowflake.snowpark import Session session = Session.builder.config("connection_name", "myconnection").create() root = Root(session)
出来上がった Session
オブジェクトを使って、コードは API のタイプとメソッドを使う Root
オブジェクトを作成します。詳細については、 Snowflake Python APIs によるSnowflakeへの接続 をご参照ください。
アカウントの管理¶
Snowflake組織のアカウントを管理できます。Snowflake のアカウントの概要については、 組織内のアカウントの管理 をご参照ください。
Snowflake Python APIs は、2つのタイプに分かれたアカウントを表します。
Account
: 名前識別子、初期管理ユーザーのログイン名とパスワード、Snowflakeエディションなどのアカウントのプロパティを公開します。AccountResource
:対応するAccount
オブジェクトをドロップしたりリストアするために使用できるメソッドを公開します。
アカウントの作成¶
アカウントを作成するには、まず Account
オブジェクトを作成し、次に API Root
オブジェクトから AccountCollection
オブジェクトを作成します。 AccountCollection.create
を使って、新しいアカウントをSnowflakeに追加します。
以下の例のコードは、指定されたアカウント・プロパティを持つ my_account1
という名前のアカウントを表す Account
オブジェクトを作成します。
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)
アカウントのリスト¶
Account
オブジェクトの PagedIter
反復子を返す AccountCollection.iter
メソッドを使用して、ウェアハウスをリストすることができます。
次の例のコードは、名前が my
で始まるアカウントを一覧表示し、それぞれの名前を表示します。
account_iter = root.accounts.iter(like="my%") # returns a PagedIter[Account] for account_obj in account_iter: print(account_obj.name)
以下の例のコードは、まだ削除されていないドロップされたアカウントを含むアカウントの履歴をリストするために、オプションのパラメーター history=True
を設定します。
account_iter = root.accounts.iter(history=True) # returns a PagedIter[Account] for account_obj in account_iter: print(account_obj.name)
アカウント操作の実行¶
AccountResource
オブジェクトを使って、アカウントの削除や復元など、一般的なアカウント操作を行うことができます。
アカウント・リソースでできる操作を示すために、次の例のコードでは次のようにしています。
my_account1
アカウントリソースオブジェクトを取得します。指定された猶予期間(アカウントが復元される(「undropped」)日数)でアカウントをドロップします。
指定された猶予期間内(つまり、永久に削除される前)に、ドロップされたアカウントを復元します。
my_account_res = root.accounts["my_account1"] my_account_res.drop(grace_period_in_days=4) my_account_res.undrop()
管理アカウントの管理¶
現在、データプロバイダーがコンシューマーのリーダーアカウントを作成するために使用しているSnowflake管理アカウントを管理します。詳細については、 リーダーアカウントを管理する をご参照ください。
Snowflake Python APIs は、2つのタイプに分かれた管理アカウントを表します。
ManagedAccount
: 管理アカウントの名前識別子、初期管理ユーザーのログイン名とパスワード、アカウントタイプなどのプロパティを公開します。ManagedAccountResource
:対応するManagedAccount
オブジェクトをドロップするために使用できるメソッドを公開します。
管理アカウントの作成¶
ウェアハウスを作成するには、まず ManagedAccount
オブジェクトを作成して、 API Root
オブジェクトから ManagedAccountCollection
オブジェクトを作成します。 ManagedAccountCollection.create
を使用して、新しい管理アカウントをSnowflakeに追加します。
以下の例のコードは、指定されたアカウント・プロパティを持つ reader_acct1
という名前の管理アカウントを表す ManagedAccount
オブジェクトを作成します。
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)
管理アカウントのリスト¶
ManagedAccount
オブジェクトの PagedIter
反復子を返す ManagedAccountCollection.iter
メソッドを使用して、ウェアハウスを一覧表示することができます。
以下の例のコードは、名前が reader
で始まる管理アカウントを一覧表示し、それぞれの名前を表示します。
account_iter = root.managed_accounts.iter(like="reader%") # returns a PagedIter[ManagedAccount] for account_obj in account_iter: print(account_obj.name)
管理アカウントのドロップ¶
ManagedAccountResource
オブジェクトで管理アカウントを削除することができます。
次の例のコードは、 reader_acct1
管理アカウント・リソース・オブジェクトを取得し、アカウントを削除します。
my_managed_account_res = root.managed_accounts["reader_acct1"] my_managed_account_res.drop()