Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Cosmos DB with Table API

昨日にひきつづきCosmos DBについてのメモで、今回は Table APIです。

SDKについて

現状のSDK対応マトリクスは以下の通りで、Table API はまだ .NET でしかサポートしていません。

f:id:StateMachine:20170518113528p:plain

NET SDKは、Nugetでバイナリのみ公開されております。

www.nuget.org

また、

You can download the Azure Storage Preview SDK from NuGet, that has the same classes and method signatures as the public Azure storage SDK, but also has the ability to connect to Azure Cosmos DB accounts using the Table API (preview).

とのことで、クラス名、メソッドシグネチャ等々 SDK レベルでの互換は保たれているようなのですが、別ソースです。しかし、ソースは公開されていないようです。

Source code for the CosmosDB compatibility? · Issue #454 · Azure/azure-storage-net · GitHub

OSSといいつつ最新のソースを公開しないのはいかがなものかと(他のJava SDKしかり)

おまけ f:id:StateMachine:20170518113750p:plain

とりあえず動きがあったら、また更新します。

Azure Cosmos DB with Java

Azure Cosmos DB がリリースされました。うんちく的なものは、

などが参考になるのではと思います。

作成

ポータルから、Cosmos DBで検索すると、作成メニューがでてきます。 URI(一意)とAPIを選択します。

f:id:StateMachine:20170517111920p:plain:w300

PIは以下から選べます。

  • Gremlin (Grpah)
  • MongoDB
  • SQL (Document DB)
  • Table (Key-Value)

同一URIで複数のAPIがいけると思っていたのですが、ちと違いました。APIでDocument DBを選択した作った後の画面が以下になります。

f:id:StateMachine:20170517112045p:plain

Javaから使ってみる

クイックスタートから言語毎のサンプルがダウンロードできます。Javaタブを開きまず、必要なデータ(Itemコレクション)を作成してから、サンプルをダウンロードします。

download したサンプルは、mavenプロジェクトになっているので、EclipseなんかでImport Exsiting Maven Projectすれば取り込めます。

ただし、Project Lombok が必要らしいので、JARをダウンロード後、ダブルクリックして起動します。適当にIDEを見つけてインストールしてくれます。

あとは、IDE内でTomcatサーバーを立てて実行します。

実行

ポータルからダウンロードすると、URIやキー情報は、DocumentClientFactory.java に埋め込まれていますのそのまま実行できます。

実行すると例によってToDoアプリが起動しますので、適当に入力すると、データが格納されます。

f:id:StateMachine:20170517130828p:plain:w640

格納されたデータは、ポータルのドキュメントエクスプローラーから参照できます。

f:id:StateMachine:20170517130939p:plain

補足

Javaのチュートリアルは、以下。

DocumentDB を使用した Java アプリケーション開発のチュートリアル | Microsoft Docs

pom.xml に書かれている Document DB SDKのバージョンがとても古いのですが、最新の1.8にしても動きます。ソースはGitHubにあります。

GitHub - Azure/azure-documentdb-java

以上

Visual Studio 2017 に Emacs Extensionをインストールする

恒例のEmacs Extension の ビルド & インストール記事です。

statemachine.hatenablog.com

ビルド

参照の変更が必要なります。

blogs.msdn.microsoft.com

上記を参照して、警告になった EnvDTE を削除し、EnvDTEのアセンブリを追加しま す。それに加えて、

  • Microsoft.VisualStudio.Shell.Framework

を追加します。

マニフェストファイルに、Prerequiesties が要素がないとか言われますので、エディタで開いて適当になにか追加しとくとエラーが取れます。

インストール

ビルドに成功すると、

bin/Debug/Microsoft.VisualStudio.Editor.EmacsEmulation.vsix

ができます。これを起動してください。UACがでますが、継続してインストールします。ちょっと最初のスクリーンショットを取り忘れたので、途中経過をやつを。

f:id:StateMachine:20170517170406p:plain:w400

確認

(最初だけ)VSを管理者モードで開いて、とりあえず何でもプロジェクトを開くと読み込まれる(気がします) f:id:StateMachine:20170517170552p:plain

ツールのオプション開いて、Emacsがあれば、インストール成功です。適当にファイルを開いて、CTRL-Aとかしてみてください。

以上。