sql >> データベース >  >> RDS >> Access

RaspberryPiからのデータアクセス

    Raspberry Piからデータベースにアクセスする必要がある場合は、このプラットフォームで使用可能なデータベース(MySQL / MariaDB、PostgreSQL、MongoDBなど)を使用するか、リモートでアクセスすることができます。 Easysoft ODBCドライバーを使用すると、Piアプリケーションをローカルデータベースとリモートデータベースの両方に接続できます。たとえば、SQL Server ODBCドライバーを使用して、Pi上のPythonをWindows上のSQL Serverに接続できます(または、これらのプラットフォームを使用している場合は、AzureクラウドまたはLinux上で)。この手順は次のとおりです。

    1. RaspberryPi用のSQLServerODBCドライバーをダウンロードします。 (登録が必要です。)
    2. RaspberryPiマシンにSQLServerODBCドライバーをインストールしてライセンスを取得します。

      インストール手順については、ODBCドライバーのドキュメントを参照してください。

      マシンにunixODBCDriverManagerがインストールされている必要があります。 Easysoftディストリビューションには、Easysoft SQLServerODBCドライバーがテストされたバージョンのunixODBCドライバーマネージャーが含まれています。 Easysoftドライバセットアッププログラムには、unixODBCをインストールするオプションがあります。

    3. 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
      
    4. isqlを使用して新しいデータソースをテストします。例:
      cd /usr/local/easysoft/unixODBC/bin
      ./isql.sh -v SQLSERVER_SAMPLE
      

      プロンプトで「help」と入力して、テーブルのリストを表示します。終了するには、空のプロンプト行でReturnキーを押します。

      接続できない場合は、この記事とSQLServerODBCドライバーのナレッジベースを参照してください。

    5. 次に、PythonからODBCデータベースにアクセスできるようにするODBCインターフェイスであるpyodbcをインストールします。
      sudo apt-get install python-pyodbc
    6. インストールをテストするには、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ドライバー

    1. 成功したMySQLDELETEは何を返しますか? DELETEが成功したかどうかを確認するにはどうすればよいですか?

    2. PostgreSQLの時間値に時間を追加する

    3. sqliteとmysqlからデータスピナーをロードします

    4. SQLServerの論理演算子ではないもの-SQLServer/TSQLチュートリアルパート121