sql >> Databasteknik >  >> RDS >> Access

Dataåtkomst från Raspberry Pi

Om du behöver komma åt en databas från Raspberry Pi kan du antingen använda en som är tillgänglig för den här plattformen (till exempel MySQL / MariaDB, PostgreSQL och MongoDB) eller få åtkomst till en på distans. Easysoft ODBC-drivrutiner gör att dina Pi-applikationer kan ansluta till både lokala och fjärrdatabaser. Du kan till exempel använda SQL Server ODBC-drivrutinen för att ansluta Python på Pi till SQL Server på Windows (eller i Azure Cloud, eller på Linux, om du använder dessa plattformar). Stegen för detta är följande:

  1. Ladda ner SQL Server ODBC-drivrutinen för Raspberry Pi. (Registrering krävs.)
  2. Installera och licensiera SQL Server ODBC-drivrutinen på Raspberry Pi-maskinen.

    För installationsinstruktioner, se dokumentationen för ODBC-drivrutinen.

    Obs Du behöver unixODBC Driver Manager installerad på din maskin. Easysoft-distributionen inkluderar en version av unixODBC Driver Manager som Easysoft SQL Server ODBC-drivrutinen har testats med. Easysofts installationsprogram för drivrutiner ger dig möjlighet att installera unixODBC.

  3. Skapa en ODBC-datakälla i /etc/odbc.ini som ansluter till SQL Server-databasen du vill komma åt från Python. Till exempel:
    [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. Använd isql för att testa den nya datakällan. Till exempel:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Vid prompten skriver du "hjälp" för att visa en lista med tabeller. För att avsluta, tryck på retur i en tom uppmaningsrad.

    Om du inte kan ansluta, se den här artikeln och SQL Server ODBC Driver Knowledge Base för hjälp.

  5. Installera nu pyodbc, ODBC-gränssnittet som gör att du kan komma åt en ODBC-databas från Python:
    sudo apt-get install python-pyodbc
  6. För att testa installationen, hämta lite SQL Server-data från ett Python-skal:
    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
    >>>
    

Alternativt, om du föredrar 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 stöder för närvarande ARMv71 Raspberry Pi-plattformen, som är 32-bitars. Om du behöver en av våra ODBC-drivrutiner för en 64-bitars Raspberry PI (i skrivande stund betyder detta en Raspberry Pi 3 Model B som kör SUSE Linux), låt oss veta genom att kontakta vårt supportteam, så kommer vi att försöka bygga en 64-bitars drivrutin för dig. En exempelfördel med att köra våra drivrutiner på en 64-bitars Raspberry Pi-plattform är den prestandaökning som denna arkitektur ger när du använder kryptering. (64-bitars heltal gör att CPU:er kan hantera krypteringsuppgifter med färre kommandon.) SQL Server ODBC-drivrutinen gör att du kan kryptera nätverksanslutningen mellan din Raspberry Pi och SQL Server, vilket skyddar data under överföring.

För närvarande ger Easysoft-drivrutiner dig tillgång till följande datalager från Raspberry Pi:

  • SQL-server
  • Oracle
  • Salesforce
  • Åtkomst
  • DB2
  • MySQL
  • Apache Derby
  • Alla ODBC-drivrutiner

  1. Cloud Vendor Deep-Dive:PostgreSQL på Google Cloud Platform (GCP)

  2. SQL 'LIKE'-fråga med '%' där sökkriteriet innehåller '%'

  3. Lägg till 2 timmar till nuvarande tid i MySQL?

  4. Finns det en Oracle SQL-fråga som samlar flera rader till en rad?