Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Sawa_Ito
Product and Topic Expert
Product and Topic Expert
0 Kudos


==2018/11/21 修正==

SAP Cloud Platform Remote Data Sync サービスは終了しました。同技術である SAP SQL Anywhere スイートに同梱される Mobile Link サーバーを利用してください。

=================

 

このページは、2016年6月にMurali Shanmugham によって書かれた英語のブログの抄訳です。最新の情報については、英語ページを参照してください。

 

==

 

以前の ブログ では、RDSync サービスを有効にし、HANA Cloud Platform (現 SAP Cloud Platform) 上の統合データベースをセットアップするためのステップについて説明しました。

今回は、Raspberry PI の設定と、HANA Cloud Platform 上の HANA データベースとの同期を有効にすることにフォーカスします。



SQL Anywhere 17 をインストールする


 

この リンク をクリックして、SQL Anywhere Developer Edition の登録をします。

ソフトウェアのダウンロード先などの詳細が記載された email が送られてきます。

SQL Anywhere 17 の Developer Edition では、インストールキーは必要ありません。



tmp フォルダーにスイッチし、以下のように sqla17developerlinuxarm.tar.gz ファイルをダウンロードします。



tar.gz ファイルのコンテンツを解凍します。sqlany17 フォルダーに変更して以下のようにセットアップファイルを実行します。

 



プロンプトに従い、SQL Anywhere 17 データベースをインストールします。

 



ここでは全オプションを選択して、全データベースをインストールしました。

 



インストールが完了したら、下のように sa_config.sh ファイルにポイントするSourceコマンドを使用して環境変数を設定します。

 



 

データベースに関連するファイルを保持したいフォルダーにスイッチし、下のコマンドを実行し、dba ユーザーとパスワードを入れてデータベースを作成します。
dbinit myslqaDB.db –dba murali, sql123






これで、Raspberry PI 上に SQL Anywhere データベースがインストールされました。

dbisqlc コマンドラインツールを使用して、このデータベースに対して SQL コマンドを発行することができます。

これは、オールドファッションのスタイルで、リッチな UI ではないため、SQL Central をノートPC にインストールして、接続プロファイルメニューを使用してRaspberry PI 上の SQL Anywhere DB に接続します。

 



接続すると、データベースサーバーを見ることができます。

 



データベースサーバーをクリックして、その下にあるデータベースをリストします。



さらにドリルダウンして、その下のさまざまなオブジェクトを展開することができます。

このプロセスで使用する 4 つの重要なオブジェクトをハイライトしました。



SAP ヘルプ Developing Client-Initiated Synchronization を参照して、これらのオブジェクトを SQL Central に作ります。

Interactive SQL を開いて、これらのオブジェクトを SQL コマンド経由で作成します。

データベースのコンテキストメニューから Interactive SQL にアクセスします。


CREATE SYNCHRONIZATION USER "MOBI_USER";
CREATE SEQUENCE mys1 MINVALUE 10 MAXVALUE 100000;
CREATE TABLE SENSOR_TABLE (ID INT PRIMARY KEY DEFAULT (mys1.nextval), TEMP DOUBLE, LIGHT DOUBLE);
CREATE PUBLICATION "murali"."mypublication" (TABLE "murali"."SENSOR_TABLE");
CREATE SYNCHRONIZATION SUBSCRIPTION "mySyncSub" TO "murali"."mypublication" FOR "MOBI_USER" SCRIPT VERSION 'V1';
CREATE SYNCHRONIZATION PROFILE mySyncProfile 's=mySyncSub;e={ctp=https;adr=''host=mobilinkserverc59c97a90.ap1.hana.ondemand.com;port=443;tls_type=rsa''}'
COMMIT;







上を説明すると :

01 - 同期プロセスで使用する Mobile Link ユーザーを作成します。

02 - シーケンスを作成し、センサーテーブルにプライマリキーを入れます。

03 - 3 つのフィールドで Sensor Table を作成します。温度と光センサーからのセンサーデータを保持します。

04 - 上で作成された Sensor Table を参照してパブリケーションオブジェクトを作成します。

05 - 上のパブリケーションと Mobile Link ユーザーを参照して、同期サブスクリプションを作成します。

06 - 上の同期サブスクリプションを参照する同期プロファイルを作成します。これには、Mobile Link サーバーがどこなのかを示す詳細情報も含まれます。

データベースをリフレッシュすると、「Tables」下に作成された Sensor Table を確認することができます。



下はテーブルの構成です。


センサーを Raspberry PI に接続する


ここでは、光、デジタルマイクロフォン、磁気センサ、湿度、圧力、 加速度、ジャイロスコープ、磁気計、物体温度、周囲温度など10 つの低パワー MEMS センサーが含まれる TI センサーを使用しています。

そして、 オープンソースライブラリ を使用して Bluetooth 経由で Raspberry PI とやりとりし、温度/光センサーの読み取りデータを抽出するよう設定しました。

また、 Nodejs ライブラリ を使用して、nodejs スクリプトを SQL Anywhere と通信させます。

さらに、TI センサータグからのセンサーの値を読み、(Raspberry PI 内にある mysqlDB01 と呼ばれる ) SQL Anywhere DB 内の SENSOR_TABLE をアップデートする nodejs スクリプト内のロジックと統合しています。



下が、Raspberry PI につながるセンサーデバイスです。



SENSOR_TABLE に対してクエリを実行し、更新された値を確認します。


同期をテストする


SQL Anywhere (リモート DB) を自分のノートPCにセットアップしてあれば、ストレートに SQL Central から同期プロファイルを実行します。

追加のセットアップは必要ありません。しかしながら、Raspberry PI にある DB から同期プロファイルを実行する場合には、いくつか実行することがあります。

  1. Raspberry PI と HCP 間のHTTPS通信を許す証明書を生成する必要があります。ブラウザ内の HCP アカウントを開き、証明書をダウンロードします。そしてこれを Raspberry PI 内のフォルダーに置く必要があります。ここでは、MySql というフォルダの下に証明書を置きました。




2. dbmlsync コマンドをマニュアルで実行します。これは上で作成された証明書を参照する必要があります。



これで、(Raspberry PI にある) リモート DB と、DB (HCP にある) 統合 DB 間の同期プロセスが始まります。コンソールログには、同期したレコード数が表示されます。



「Synchronization completed」メッセージがコンソールに表示されたら、HCP データベースにナビゲートし、SENSOR_TABLE を見てレコードが同期されたかチェックします。



 

以上で終了です。

クラウドにある統合データベースとエッジにあるコンピュータ機器のデータの同期に、HCP の Remote Data Sync サービスを使う方法についてみてきました。

これがみなさんのお役に立つことを願っています。

HCP における Smart Data Streaming / IoT / Predictive service についてのブログも掲載していますので、こちらも参考になれば幸いです。

Capture event streams from IoT devices and perform predictive analytics using HCP - Part 1

 

graeme.perrow (Github 貢献)

tom.slee (Raspberry PI での同期実現の支援)

の二人のご協力に感謝します。

===

 

SAP SQL Anywhere に関する詳細情報は、SAP SQL Anywhere Communityページ<英語> を参照してください。

 

上記のコミュニティーに掲載されている技術情報は、順次SQL Anywhere 日本語コミュニティ

に掲載しています。

 

SQL Anywhere に関してはまずはこちらをご参照ください。無期限でご利用いただける無償の Developers Edition もこちらからダウンロードが可能です。

 

SQL Anywhere に関して技術的な質問のある方はコミュニティに登録し、
「Ask a Question」機能をご利用ください。

Language には「Japanese」、
Primary Tag には「SAP SQL Anywhere」を選択
User Tagに「sql anywhere」「sql anywhere Japanese question」

を入力してください。

不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。

 

======================
ご購入に関するお問い合わせ

こちらよりお問い合わせください。