Raspberry Piからデータベースにアクセスする必要がある場合は、このプラットフォームで使用可能なデータベース(MySQL / MariaDB、PostgreSQL、MongoDBなど)を使用するか、リモートでアクセスすることができます。 Easysoft ODBCドライバーを使用すると、Piアプリケーションをローカルデータベースとリモートデータベースの両方に接続できます。たとえば、SQL Server ODBCドライバーを使用して、Pi上のPythonをWindows上のSQL Serverに接続できます(または、これらのプラットフォームを使用している場合は、AzureクラウドまたはLinux上で)。この手順は次のとおりです。
- RaspberryPi用のSQLServerODBCドライバーをダウンロードします。 (登録が必要です。)
- RaspberryPiマシンにSQLServerODBCドライバーをインストールしてライセンスを取得します。
インストール手順については、ODBCドライバーのドキュメントを参照してください。
注 マシンにunixODBCDriverManagerがインストールされている必要があります。 Easysoftディストリビューションには、Easysoft SQLServerODBCドライバーがテストされたバージョンのunixODBCドライバーマネージャーが含まれています。 Easysoftドライバセットアッププログラムには、unixODBCをインストールするオプションがあります。
- PythonからアクセスするSQLServerデータベースに接続するODBCデータソースを/etc/odbc.iniに作成します。次に例を示します。
[SQLSERVER_SAMPLE] Driver = Easysoft ODBC-SQL Server Server = my_machine\SQLEXPRESS User = my_domain\my_user Password = my_password # If the database you want to connect to is the default # for the SQL Server login, omit this attribute Database = Northwind
- isqlを使用して新しいデータソースをテストします。例:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v SQLSERVER_SAMPLE
プロンプトで「help」と入力して、テーブルのリストを表示します。終了するには、空のプロンプト行でReturnキーを押します。
接続できない場合は、この記事とSQLServerODBCドライバーのナレッジベースを参照してください。
- 次に、PythonからODBCデータベースにアクセスできるようにするODBCインターフェイスであるpyodbcをインストールします。
sudo apt-get install python-pyodbc
- インストールをテストするには、PythonシェルからSQLServerデータをフェッチします。
pi@raspberrypi:~ $ python Python 2.7.13 (default, Jan 19 2017, 14:48:08) [GCC 6.3.0 20170124] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyodbc >>> cnxn = pyodbc.connect("DSN=SQLSERVER_SAMPLE") >>> cursor = cnxn.cursor() >>> cursor.tables() <pyodbc.Cursor object at 0x76a168a8> >>> rows = cursor.fetchall() >>> for row in rows: ... print row.table_name ... sysmatrixageforget GEMS_DEPENDENTS_STAGING2 GEMS_DEPENDENTS_STAGING2 MSreplication_options oinsert spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor >>>
または、Perlを使用する場合:
pi@raspberrypi:~ $ sudo apt-get install libdbi-perl pi@raspberrypi:~ $ wget http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.56.tar.gz pi@raspberrypi:~ $ tar -xvf DBD-ODBC-1.56.tar.gz pi@raspberrypi:~ $ cd DBD-ODBC-1.56 pi@raspberrypi:~ $ export DBI_DSN='dbi:ODBC:SQLSERVER_SAMPLE' pi@raspberrypi:~ $ DBI_USER='mydb_user' pi@raspberrypi:~ $ DBI_PASS='mydb_password' pi@raspberrypi:~ $ perl Makefile.PL pi@raspberrypi:~ $ make pi@raspberrypi:~ $ make test pi@raspberrypi:~ $ sudo make install pi@raspberrypi:~ $ vi perl-test.pl #!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect( "dbi:ODBC:SQLSERVER_SAMPLE", "mydb_user", "mydb_password" , { RaiseError => 1 } ); my $sth = $dbh->table_info(); while ( my ( $qualifier, $owner, $name, $type, $remarks ) = $sth->fetchrow_array() ) { foreach ($qualifier, $owner, $name, $type, $remarks) { $_ = '' unless defined $_; } print "$qualifier, $owner, $name, $type, $remarks \n"; } exit; pi@raspberrypi:~ $ perl ./perl-test.pl master, dbo, sysmatrixageforget, SYSTEM TABLE, master, dbo, GEMS_DEPENDENTS_STAGING2, TABLE, master, dbo, DBD_ODBC_LOB_TEST, TABLE,
Easysoftは現在、32ビットのARMv71RaspberryPiプラットフォームをサポートしています。 64ビットRaspberryPI用のODBCドライバーの1つが必要な場合(これを書いている時点では、SUSELinuxを実行しているRaspberryPi 3モデルBを意味します)、サポートチームに連絡してお知らせください。あなたのための64ビットドライバー。 64ビットのRaspberryPiプラットフォームでドライバーを実行する利点の例は、暗号化を使用するときにこのアーキテクチャがもたらすパフォーマンスの向上です。 (64ビット整数により、CPUはより少ないコマンドで暗号化タスクを処理できます。)SQL Server ODBCドライバーを使用すると、RaspberryPiとSQLServer間のネットワーク接続を暗号化して、転送中のデータを保護できます。
現在、Easysoftドライバーを使用すると、RaspberryPiから次のデータストアにアクセスできます。
- SQL Server
- Oracle
- セールスフォース
- アクセス
- DB2
- MySQL
- Apache Derby
- 任意のODBCドライバー