Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Azure Microsoft Python

AzureのTable StorageをPythonから操作する方法

投稿日:2022年11月20日 更新日:

 

<目次>

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 のものです

>目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Azure, Microsoft, Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

関連記事

Azure Logic AppsからAzure Storageを操作する方法(access_tokenの更新を題材に)

  <目次> (1) Azure Logic AppsからAzure Storageを操作する方法(access_tokenの更新を題材に)  (1-0) やりたいこと  (1-1) STE …

PythonのSQLAlchemyで「Identifier ‘XXX’ exceeds maximum length of 30 characters」エラーや「DtypeWarning: Columns (X) have mixed types.」警告が出た時の対処について

(0)目次&概説 (1) エラー1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラー …

Pythonでcsvのカラム名・テーブルのレコードを取得する方法

今回PythonのPandasライブラリを用いてcsvファイルを読み込み、カラム名やテーブルのレコードを取得する方法をご紹介します。 <目次> (1) Pythonでcsvのカラム名・テーブルのレコー …

no image

Pythonでランダムな座標データを生成する方法

  <目次> (1) Pythonでランダムな座標データを生成する方法  (1-1) 使う構文  (1-2) サンプルプログラム  (1-3) 補足:データの座標を全体的にシフトしたい場合 …

Pythonのコンストラクタの基礎と「self」や「__init__」について

<目次> (1) Pythonのコンストラクタの基礎と「self」や「__init__」について  (1-1) 「__init__」やコンストラクタについて  (1-2) コンストラクタで使われる「s …

  • English (United States)
  • 日本語
Top