<目次>
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 のものです
>目次にもどる