MicrosoftAzure-テーブル

テーブルを格納することは、ここでリレーショナルデータベースを意味するものではありません。Azure Storageは、外部キーやその他の種類の関係がなくても、テーブルのみを格納できます。これらのテーブルは非常にスケーラブルであり、大量のデータを処理するのに理想的です。テーブルを保存して、大量のデータを照会できます。リレーショナルデータベースは、別のサービスであるSQL DataServicesを使用して保存できます。

サービスの3つの主要な部分は次のとおりです。

  • Tables
  • Entities
  • Properties

たとえば、「Book」がエンティティの場合、そのプロパティはId、Title、Publisher、Authorなどになります。エンティティのコレクションに対してテーブルが作成されます。252個のカスタムプロパティと3個のシステムプロパティがあります。エンティティには、常にPartitionKey、RowKey、Timestampのシステムプロパティがあります。タイムスタンプはシステムによって生成されますが、テーブルにデータを挿入するときにPartitionKeyとRowKeyを指定する必要があります。以下の例はそれをより明確にします。テーブル名とプロパティ名では大文字と小文字が区別され、テーブルの作成時に常に考慮する必要があります。

PowerShellを使用してテーブルを管理する方法

Step 1 −チュートリアルで前述したように、WindowsPowerShellをダウンロードしてインストールします。

Step 2 −「WindowsPowerShell」を右クリックし、「タスクバーに固定」を選択して、コンピューターのタスクバーに固定します。

Step 3 −「管理者としてISEを実行」を選択します。

テーブルの作成

Step 1−以下のコマンドをコピーして、画面に貼り付けます。強調表示されたテキストをアカウントに置き換えます。

Step 2 −アカウントにログインします。

$StorageAccountName = "mystorageaccount" 
$StorageAccountKey = "mystoragekey" 
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey 
$StorageAccountKey

Step 3 −新しいテーブルを作成します。

$tabName = "Mytablename" 
New-AzureStorageTable –Name $tabName –Context $Ctx

次の画像は、「book」という名前で作成されているテーブルを示しています。

その結果、次のエンドポイントが与えられていることがわかります。

https://tutorialspoint.table.core.windows.net/Book

同様に、PowerShellのプリセットコマンドを使用して、データを取得、削除、およびテーブルに挿入できます。

テーブルを取得

$tabName = "Book" 
Get-AzureStorageTable –Name $tabName –Context $Ctx

テーブルを削除する

$tabName = "Book"
Remove-AzureStorageTable –Name $tabName –Context $Ctx

テーブルに行を挿入します

function Add-Entity() { 
   [CmdletBinding()] 
	
   param( 
      $table, 
      [String]$partitionKey, 
      [String]$rowKey, 
      [String]$title, 
      [Int]$id, 
      [String]$publisher, 
      [String]$author 
   )  
   
   $entity = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity 
      -ArgumentList $partitionKey, $rowKey 
		
   $entity.Properties.Add("Title", $title) 
   $entity.Properties.Add("ID", $id) 
   $entity.Properties.Add("Publisher", $publisher) 
   $entity.Properties.Add("Author", $author) 
   
   
   $result = $table.CloudTable.Execute(
      [Microsoft.WindowsAzure.Storage.Table.TableOperation]
      ::Insert($entity)) 
}
  
$StorageAccountName = "tutorialspoint" 
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey 
   $StorageAccountKey.Primary  

$TableName = "Book"
  
$table = Get-AzureStorageTable –Name $TableName -Context $Ctx -ErrorAction Ignore 
 
#Add multiple entities to a table. 
Add-Entity -Table $table -PartitionKey Partition1 -RowKey Row1 -Title .Net -Id 1
   -Publisher abc -Author abc 
Add-Entity -Table $table -PartitionKey Partition2 -RowKey Row2 -Title JAVA -Id 2 
   -Publisher abc -Author abc 
Add-Entity -Table $table -PartitionKey Partition3 -RowKey Row3 -Title PHP -Id 3
   -Publisher xyz -Author xyz 
Add-Entity -Table $table -PartitionKey Partition4 -RowKey Row4 -Title SQL -Id 4 
   -Publisher xyz -Author xyz

テーブルデータの取得

$StorageAccountName = "tutorialspoint" 
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext – StorageAccountName $StorageAccountName -
   StorageAccountKey $StorageAccountKey.Primary; 

$TableName = "Book"
  
#Get a reference to a table. 
$table = Get-AzureStorageTable –Name $TableName -Context $Ctx  

#Create a table query. 
$query = New-Object Microsoft.WindowsAzure.Storage.Table.TableQuery

#Define columns to select. 
$list = New-Object System.Collections.Generic.List[string] 
$list.Add("RowKey") 
$list.Add("ID") 
$list.Add("Title") 
$list.Add("Publisher") 
$list.Add("Author")
  
#Set query details. 
$query.FilterString = "ID gt 0" 
$query.SelectColumns = $list 
$query.TakeCount = 20
 
#Execute the query. 
$entities = $table.CloudTable.ExecuteQuery($query)

#Display entity properties with the table format. 

$entities  | Format-Table PartitionKey, RowKey, @{ Label = "Title"; 
Expression={$_.Properties["Title"].StringValue}}, @{ Label = "ID"; 
Expression={$_.Properties[“ID”].Int32Value}}, @{ Label = "Publisher"; 
Expression={$_.Properties[“Publisher”].StringValue}}, @{ Label = "Author"; 
Expression={$_.Properties[“Author”].StringValue}} -AutoSize

出力は次の図のようになります。

テーブルから行を削除する

$StorageAccountName = "tutorialspoint" 
 
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext – StorageAccountName $StorageAccountName - 
   StorageAccountKey $StorageAccountKey.Primary  

#Retrieve the table. 
$TableName = "Book" 
$table = Get-AzureStorageTable -Name $TableName -Context $Ctx -ErrorAction 
Ignore 

#If the table exists, start deleting its entities. 
if ($table -ne $null) { 
   #Together the PartitionKey and RowKey uniquely identify every   
   #entity within a table.
	
   $tableResult = $table.CloudTable.Execute(
      [Microsoft.WindowsAzure.Storage.Table.TableOperation] 
      ::Retrieve(“Partition1”, "Row1")) 
		
   $entity = $tableResult.Result;
	
   if ($entity -ne $null) {
      $table.CloudTable.Execute(
         [Microsoft.WindowsAzure.Storage.Table.TableOperation] 
         ::Delete($entity)) 
   } 
}

上記のスクリプトは、スクリプトでPartition1とRow1を指定したことがわかるように、テーブルから最初の行を削除します。行の削除が完了したら、行を取得するためのスクリプトを実行して結果を確認できます。ここで、最初の行が削除されていることがわかります。

これらのコマンドを実行するときは、アカウント名をアカウント名に、accountkeyをアカウントキーに置き換えたことを確認してください。

Azure StorageExplorerを使用してテーブルを管理する方法

Step 1 − Azureアカウントにログインし、ストレージアカウントに移動します。

Step 2 −次の画像の紫色の円で示されているように、リンク「ストレージエクスプローラー」をクリックします。

Step 3−リストから[Azure Storage Explorer forWindows]を選択します。これは、ダウンロードしてコンピューターにインストールできる無料のツールです。

Step 4 −コンピュータでこのプログラムを実行し、上部にある[アカウントの追加]ボタンをクリックします。

Step 5−「ストレージアカウント名」と「ストレージアカウントキー」を入力し、「アクセスのテスト」をクリックします。次の画像では、ボタンが丸で囲まれています。

Step 6−ストレージにすでにテーブルがある場合は、左側のパネルの[テーブル]の下に表示されます。行をクリックすると、行が表示されます。

テーブルを作成する

Step 1 −次の図に示すように、[新規]をクリックしてテーブル名を入力します。

テーブルに行を挿入します

Step 1 −「新規」をクリックします。

Step 2 −フィールド名を入力します。

Step 3 −ドロップダウンからデータ型を選択し、フィールド値を入力します。

Step 4 −作成された行を表示するには、左側のパネルのテーブル名をクリックします。

Azure Storage Explorerは、テーブルを管理するための非常に基本的で簡単なインターフェイスです。このインターフェイスを使用して、テーブルを簡単に作成、削除、アップロード、およびダウンロードできます。これにより、Windows PowerShellで長いスクリプトを作成する場合に比べて、開発者はタスクを非常に簡単に行うことができます。