<目次>
AzureのTable StorageをPythonから操作する方法
当記事のゴール
Azure Table StorageをPythonで操作するための基礎知識
STEP0:Azure Storage Accountの作成
STEP1:Azure Table Storageでテーブルを作成
STEP2:Pythonで操作するサンプルプログラム
AzureのTable StorageをPythonから操作する方法
※注意:以前利用されていた azure-cosmosdb-table
SDK はすでに廃止されています。
本記事では、Microsoft が提供する最新かつ推奨の azure-data-tables
を用いた実装を解説します。
当記事のゴール
Pythonプログラムから、Azure Table Storageの基本操作(INSERT)を実行すること。
(図111)
Azure Table StorageをPythonで操作するための基礎知識
・Azure Table Storageは構造化されたNoSQL(キーと値の組合せ)データをクラウド上で扱える。
・RDBに見られるスキーマの概念はなく、簡易に扱える。
・RDBにおけるレコードの事を「エンティティ」と呼ぶ。
・プロパティ(≒カラム相当)はデフォルトで「PartitionKey」と「RowKey」と「TimeStamp」がある。
・「PartitionKey」はエンティティ(≒レコード)のグルーピングである。
・「PartitionKey」のスループットは2000件/秒である。
・従ってグルーピング出来るものは別パーティションにする事で、パフォーマンス低下を防ぐ事が可能(パーティション単位で他サーバに負荷分散出来るため)。
・「RowKey」はエンティティ(≒レコード)を一意に特定するキーである。
→(参考)Table Storageの詳細
(図112)
>目次にもどる
STEP0:Azure Storage Accountの作成
Table StorageはAzure Storage Accountというリソースの中の1機能なので、先にストレージアカウントを作成しておく必要があります。
→(参考)ストレージアカウントの作成方法
>目次にもどる
STEP1:Azure Table Storageでテーブルを作成
●STEP1-1:テーブル作成
・①Storage Accountの「テーブル」ブレードを選択して「+テーブル」を押下
Storage Accountの詳細はこちら
(図121①)
↓
(図121②)
↓
・③作成完了
(図121③)
>目次にもどる
●STEP1-2:テーブル定義の設定
・①ストレージブラウザーを選択
(図122①)
↓
・②テーブルを選択
(図122②)
↓
・③対象のテーブルを選択
(図122③)
↓
・④「+エンティティの追加」を押下
(図122④)
↓
・⑤「プロパティの追加」を押下し、必要な列を追加します。
(図122⑤)
↓
(図122⑥)
↓
(図122⑦)
>目次にもどる
STEP2:Pythonで操作するサンプルプログラム
●必要ライブラリのインストール
もし azure-data-tables
ライブラリが未導入の場合は先に導入します。
pip install azure-data-tables
●サンプルプログラム
from azure.data.tables import TableServiceClient, UpdateMode # 接続文字列(Azureポータルから取得) connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net" # テーブルクライアント生成 table_service = TableServiceClient.from_connection_string(conn_str=connection_string) table_client = table_service.get_table_client(table_name="TestTableRainbow") # DBに登録するエンティティ(キー&値のペア) entity = { "PartitionKey": "GA", "RowKey": "0001_GA", "DepartmentName_ENG": "General Affairs", "DepartmentName_JPN": "総務部" } # Upsert(Insert or Replace 相当) table_client.upsert_entity(mode=UpdateMode.REPLACE, entity=entity)
(図131)※図はイメージです。以前利用されていた azure-cosmosdb-table SDK のものです
>目次にもどる