SAP SQL Anywhere 16 が Linux ARM (Raspberry Pi) 上で動作可能になりました。
このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。
数年前より、小さく低電力なARM ベースのコンピューティングデバイスが市場に爆発的に注目を集めだしました。その1つの例が、とても手に入れやすい価格のRaspberry Pi です。 これらの ARM ベースのデバイスは、ネットワークのエッジで稼働する組み込みアプリケーションにとっては、すばらしいデバイスです。
このトレンドは、とても興味深いものです。なぜならば、SQL Anywhere は、ネットワークのエッジで、稼働する組み込みアプリケーションで稼働するよう設計されているからです。SQL Anywhere がピッタリフィットする市場に思いませんか?
私たちもそう考えます! SQL Anywhere 16 が、Linux ARM (Rasberry Pi)上で動作可能になったことを本日アナウンスできることをうれしく思います。
テストしてみたい方は、Raspberry Pi ボード( ~$35 )を入手して、以下のステップに従ってください。
事前に必要なもの
- Raspbian がインストールされた Raspberry Pi (他のLinux ディストリビューションや、他の ARMv6 や ARMv7 デバイスでも動くかもしれませんが、コマンドが異なる場合があります。)
- Raspberry Pi へのインターネット接続
- Raspberry Pi への shell アクセス (SSH 経由または、接続されたディスプレイ)
SQL Anywhere on Raspberry Pi をはじめてみる。
最新の SAP SQL Anywhere 16 Developer Edition を登録します: https://global.sap.com/campaign/ne/sybase/sql_anywhere_16_download_program/index.epx?kNtBzmUK9zU
登録すると、メールで登録キーが送られます。
Raspberry Pi の shell を開きます(SSH 経由または、デスクトップから)。 SQL Anywhere Developer Edition をダウンロードして、解凍します。
- cd /tmp
- wget http://d5d4ifzqzkhwt.cloudfront.net/sqla16developer/bin/sqla16developerlinuxarmv6.tar.gz
- tar -xvf sqla16developerlinuxarmv6.tar.gz
メールで送られたキーを使用して、SQL Anywhere を (全てデフォルトのまま) インストールします 。
- cd ga1600
- sudo ./setup
ホームディレクトリーに戻ります。
- cd ~
SQL Anywhere 実行ファイルとライブラリは、PATH と LD_LIBRARY_PATH 環境変数には自動的には追加されません。設定ファイルをソーシングすることで、これを現在の shell の環境に追加することができます。
- . /opt/sqlanywhere16/bin32/sa_config.sh
この環境をテストするには、以下を実行してみてください。サーバーの現在のバージョンを返すはずです。 (例: 16.0.0.1972)
- dbsrv16 -v
全ての設定が終了しましたので、次は、小さなアプリケーションを作成してみましょう。アプリケーションを格納するディレクトリーを1つ作成します。
- mkdir hellosensor
- cd hellosensor
次に、空のデータベースを初期化する必要があります。このデータベースを hellosensor.db と呼びます。
- dbinit hellosensor.db
データベースサーバーを起動します。 (the -ud スイッチは、サーバーをバックグラウンドデーモンとして起動します)
- dbsrv16 -ud hellosensor.db
Raspberry Pi の好ましい開発言語は、Pythonです。これは、プリインストールされていますので、これを使用します。SQL Anywhere に接続するには、SQL Anywhere Python ドライバーをインストールする必要があります。これは、Python Package Manger (pip) 経由でインストールできます。
最初に、pip がインストールされていることを確認してください。
- sudo apt-get install python-pip
それから、SQL Anywhere Python ドライバーを pip 経由でインストールします。.
- sudo pip install sqlanydb
helloworld.py というファイルを、以下のコンテンツとともに作成します。
- import sqlanydb
- conn = sqlanydb.connect(uid=‘dba’, pwd=‘sql’, eng=‘hellosensor’, dbn=‘hellosensor’ )
- curs = conn.cursor()
- curs.execute(“select ‘Hello, world!'”)
- print “SQL Anywhere says: %s” % curs.fetchone()
- curs.close()
- conn.close()
ファイルを保存して、テストします。
- python helloworld.py
成功した場合には、以下のメッセージがでます。
- SQL Anywhere says: Hello, world!
ここまでは、全て正しくセットアップされています。次に、架空のセンサー情報を読み取り、テーブルに格納するアプリケーションを作成してみましょう。 hellosensor.py というファイルを以下のコンテンツとともに作成します。
- # Import the SQL Anywhere Python driver
- import sqlanydb
- from time import sleep
- from random import random
- # Connect to the database
- conn = sqlanydb.connect(uid=‘dba’, pwd=‘sql’, eng=‘hellosensor’, dbn=‘hellosensor’ )
- # Create the table to hold the sensor readings (if not exists)
- def setup():
- curs = conn.cursor()
- sql = (“CREATE TABLE IF NOT EXISTS Sensor(“
- ” id INTEGER PRIMARY KEY DEFAULT AUTOINCREMENT,”
- ” reading FLOAT NOT NULL,”
- ” timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL”
- “)”)
- curs.execute(sql)
- curs.close()
- # This function would normally read a real sensor (temperture, etc)
- # For this sample, it returns a random float between 0 and 100
- def read_sensor():
- return random() * 100
- # Write the sensor value into the database
- def write_reading(value):
- curs = conn.cursor()
- sql = “INSERT INTO Sensor(reading) VALUES (?)”
- curs.execute(sql, (value,))
- curs.close()
- # IMPORTANT! SQL Anywhere does not commit by default
- # An explicit commit is required.
- conn.commit()
- # Create tables
- setup()
- print(‘Press Ctrl-C to stop…’)
- # Read sensor every 3 seconds, and insert into database
- # Run until Ctrl-C is pressed
- try:
- while True:
- value = read_sensor()
- print(“Current sensor reading is %s” % (value,))
- write_reading(value)
- sleep(3)
- except KeyboardInterrupt:
- # Close the connection
- conn.close()
( 現実のアプリケーションでは、おそらくGPIO ピンと何かを行うよう温度センサーのロギングのような物理的な世界のものとread_sensor をリプレースすることになると思います。)
ファイルを保存して、テストします。
- python hellosensor.py
アウトプットは、以下のようなものになります。
- Press Ctrl-C to stop…
- Current sensor reading is 67.012247981
- Current sensor reading is 83.2578335957
- Current sensor reading is 71.2944099229
- Current sensor reading is 88.3533857105
- Current sensor reading is 99.646246581
全て機能しており、組み込まれたSQL Anywhere データベースにデータがうまくロギングされています。次のブログでは、開発マシンからグラフィカルな管理ツールと接続させ、保存したデータを見ます。
===
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」
を入力してください。
不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。
======================
ご購入に関するお問い合わせ
こちらよりお問い合わせください。