sql >> Database teknologi >  >> RDS >> Database

Google BigQuery ODBC-driver

Vi har frigivet en ODBC-driver til Google BigQuery. Driveren lader dig forespørge og opdatere BigQuery-data i andre applikationer end Google BigQuery-konsollen. Vi tænkte, at vi ville dele nogle af de ting, du kan gøre i disse tredjepartsapplikationer (f.eks. Perl, PHP, Excel og Oracle).

Installation af BigQuery ODBC-driveren

  1. Installer og licensér Google BigQuery ODBC-driveren på den maskine, hvor klientapplikationen er installeret.

    Hvis du f.eks. vil arbejde med BigQuery-data i Excel, skal du installere BigQuery ODBC-driveren på den maskine, hvor Excel er installeret.

    For at gøre dette skal du udføre fildistributionen og følge instruktionerne på skærmen.

    Installationsprogrammet starter Easysoft License Manager, fordi du ikke kan bruge BigQuery ODBC-driveren, før en licens er opnået.

    Følgende licenstyper er tilgængelige:

    • Gratis tidsbegrænset prøvelicens, som giver dig gratis og ubegrænset brug af produktet i en begrænset periode (normalt 14 dage).
    • Fuld licens, hvis du har købt produktet. Ved køb af produktet får du en autorisationskode, som du bruger til at opnå en licens
  2. Indtast dine oplysninger i Easysoft License Manager.

    Du SKAL indtaste felterne Navn, E-mailadresse og Firma.

    E-mail-adressen SKAL være den samme som den adresse, der blev brugt til at registrere og downloade fra Easysoft-webstedet, ellers vil du ikke være i stand til at få prøvelicenser.

  3. Vælg Anmod om licens.

    Du bliver bedt om en licenstype.

  4. Gør et af følgende:
    • For en prøvelicens skal du klikke på Tidsbegrænset prøveversion og derefter klikke på Næste.

      Licensadministratoren spørger, hvilken software du licenserer. Vælg Easysoft BigQuery ODBC Driver fra rullelisten, og klik derefter på Næste.

    • Hvis du har fået en godkendelseskode til en købt licens, skal du vælge Ikke-udløbende licens og derefter klikke på Næste.

      Licensadministratoren anmoder om din autorisationskode.

      Indtast godkendelseskoden, og klik derefter på Næste.

  5. Licensadministratoren viser en oversigt over de oplysninger, du har indtastet, og giver dig mulighed for at vælge metoden til at ansøge om din licens.
  6. Gør et af følgende:
    • Vælg onlineanmodning, hvis din maskine er forbundet til internettet og kan oprette udgående forbindelser til port 8884.

      Licensadministratoren sender derefter en anmodning til Easysoft-licensserveren om at aktivere din licensnøgle automatisk. Dette er den hurtigste metode og resulterer i, at dine oplysninger straks indtastes i vores supportdatabase.

    • De resterende tre muligheder (e-mail-anmodning, udskriftsanmodning og se anmodning) er alle måder at få en licens på, hvis din maskine er offline (dvs. ikke har forbindelse til internettet).

      Hver af disse metoder involverer at give Easysoft oplysninger, herunder dit maskinnummer (et nummer, der er unikt for din maskine) og derefter vente på at modtage din licensnøgle.

      I stedet for at sende dine oplysninger til Easysoft via e-mail, kan du indtaste dem direkte på Easysofts websted, og din licensnøgle vil automatisk blive sendt til dig via e-mail.

      For at bruge denne metode skal du klikke på Vis anmodning og derefter gå til:

      • Prøvlicensside
      • Fuld licensside

      På siden Licens skal du indtaste dit maskinnummer (og autorisationskode for købt licens), klikke på Send, og din licensnøgle vil blive sendt til dig via e-mail.

      Når du modtager licensnøglen, kan du aktivere den enten ved at dobbeltklikke på den vedhæftede e-mail eller ved at klikke på Enter License på hovedskærmen i License Manager og indsætte licensnøglen i dialogboksen.

    • Vælg Udfør for at afslutte License Manager.

      Installationen er fuldført.

Konfiguration af en ODBC-datakilde

Før BigQuery ODBC-driveren kan bruges til at forbinde en applikation til BigQuery, er det nødvendigt at konfigurere en ODBC-datakilde. En ODBC-datakilde gemmer forbindelsesdetaljerne for måldatabasen (f.eks. BigQuery) og den ODBC-driver, der kræves for at oprette forbindelse til den (f.eks. BigQuery ODBC-driveren).

ODBC-datakilder konfigureres i ODBC Administrator, som er inkluderet i Windows. Hvordan ODBC Administrator køres afhænger af, om dit program er 32-bit eller 64-bit:

  • Min applikation er 32-bit

    Skriv:

    i dialogboksen Kør i Windows
    %windir%\syswow64\odbcad32.exe

  • Min applikation er 64-bit

    Åbn System og sikkerhed> Administrative værktøjer i Kontrolpanel, og åbn derefter ODBC-datakilder (64-bit). (På Windows Server 2003 og tidligere er kontrolpanel-appletten, der starter ODBC Administrator, mærket Datakilder.)

Hvordan kan man se, om et program er 32-bit eller 64-bit?

Applikation Bemærkninger
Excel Der er både en 32-bit og en 64-bit version af Excel. For at finde ud af, hvilken version af Excel du har, skal du starte Excel og derefter starte Windows Task Manager. I Task Manager skal du vælge fanen Processer. Se efter Excel.exe på listen. Hvis dette procesnavn efterfølges af *32 , din version af Excel er 32-bit. Ellers er din version af Excel 64-bit.
GoodData CloudConnect Deigner er et 64-bit program.
Mikrostrategi MicroStrategy er et 32-bit program.
Oracle Oracle-komponenten, der interagerer med MongoDB ODBC-driveren, kaldes DG4ODBC. Der er både en 32-bit og en 64-bit version af DG4ODBC. For at finde ud af, hvilken version af DG4ODBC du har, skal du starte Windows Task Manager og vælge fanen Processer. Skriv dg4odbc --help i et kommandopromptvindue . I Windows Task Manager skal du se efter DG4ODBC-processen. Hvis billednavnet er "dg4odbc.exe *32" er DG4ODBC 32-bit. Hvis billednavnet er "dg4odbc.exe" er DG4ODBC 64-bit. Tryk på CTRL+C i kommandopromptvinduet, når du har brugt Windows Task Manager til at finde ud af DG4ODBC's arkitektur.
Oracle Business Intelligence Enterprise Edition (OBIEE) OBIEE-komponenten, der interagerer med MongoDB ODBC-driveren, kaldes Oracle BI Administration Tool. Oracle BI Administration Tool er 64-bit.
PHPRunner PHPRunner er et 32-bit program.
QlikView QlikView er et 32-bit program, hvis afkrydsningsfeltet Force 32 Bit er markeret. Ellers er QlikView et 64-bit program.
SAP BusinessObjects Central Management Server er en 64-bit applikation. Business View Manager, Information Design Tool og Web Intelligence Rich Client er 32-bit applikationer.
SAP Crystal Reports Crystal Reports er et 32-bit program.
SQL-server Der er både en 32-bit og en 64-bit version af SQL Server. For at finde ud af, hvilken version af SQL Server du har, skal du oprette forbindelse til din SQL Server-instans og derefter køre denne SQL-sætning:
select SERVERPROPERTY('edition')

Hvis du har 64-bit versionen af ​​SQL Server og ønsker at bruge en forbundet server med BigQuery ODBC-driveren, er din applikation 64-bit.

Hvis du har 32-bit versionen af ​​SQL Server eller ønsker at bruge SSIS med BigQuery ODBC-driveren, er din applikation 32-bit.

Tableau Tableau er et 32-bit program.
TIBCO Spotfire TIBCO Spotfire er et 64-bit program.

I ODBC Administrator:

  1. Vælg fanen System DSN, og vælg derefter Tilføj.
  2. Vælg Easysoft ODBC-BigQuery-driver i dialogboksen Opret ny datakilde, og vælg derefter Udfør.
  3. Udfyld disse felter i dialogboksen Easysoft ODBC-BigQuery Driver DSN Setup:
    Indstilling Værdi
    DSN BigQuery
    Opdater token Vælg godkendelse og indhent token og giv BigQuery ODBC-driveren tilladelse til at få adgang til dine BigQuery-data for at udfylde dette felt.
  4. I din applikation skal du oprette forbindelse til din nyligt konfigurerede datakilde og køre en prøveforespørgsel. For eksempel:
    select * from MyTable limit 10

Arbejd med BigQuery-data i Perl

Strawberry Perl er en Perl-distribution til Windows, der inkluderer de nødvendige middleware-lag (Perl DBI og Perl DBD::ODBC) for at gøre det muligt for BigQuery ODBC-driveren at forbinde dine Perl-applikationer til BigQuery.

  1. Her er et Perl-script, der henter nogle BiqQuery-data:
    #!/usr/bin/perl -w
    use strict;
    use DBI;
    my $dbh = DBI-> connect('dbi:ODBC:MyBigQueryDataSource');
    
    my $sql = "SELECT residential_ratio  FROM `bigquery-public-data.hud_zipcode_crosswalk.census_tracts_to_zipcode` LIMIT 10";
    
    # Prepare the statement.
    my $sth = $dbh->prepare($sql)
        or die "Can't prepare statement: $DBI::errstr";
    
    # Execute the statement.
    $sth->execute();
    
    my($BigQueryCol);
    
    # Fetch and display the result set value.
    while(($BigQueryCol) = $sth->fetchrow()){
       print("$BigQueryCol\n");                   
    }
    
    $dbh->disconnect if ($dbh);
  2. Her er et Perl-script, der indsætter nogle BigQuery-data:
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    use DBI;
    
    my $data_source = q/dbi:ODBC:MyBigQueryDataSource/;
    
    my $h = DBI-"connect($data_source)
        or die "Can't connect to $data_source: $DBI::errstr";
    $h->{RaiseError} = 1;
    
    my $s = $h->prepare(q/insert into MyTable(MyStringCol, MyIntegerCol, MyFloatCol, MyNumericCol, MyBooleanCol,MyDateCol,MyTimeCol,MyDateTimeCol,MyTimeStampCol) values(?,?,?,?,?,?,?,?,?)/);
    my $string='MyValue';
    my $int=46683;
    my $float=8.3;
    my $numeric=0.00333;
    my $bool=0;
    my $date='2021-01-23';
    my $time='00:00:20';
    my $datetime='2021-02-05 00:00:00';
    my $timestamp='2019-01-27 00:00:00';
    
    $s->bind_param(1, $string, DBI::SQL_WVARCHAR);
    $s->bind_param(2, $int, DBI::SQL_INTEGER);
    $s->bind_param(3, $float, DBI::SQL_FLOAT);
    $s->bind_param(4, $numeric, DBI::SQL_NUMERIC);
    #$s->bind_param(5, $bignumeric, DBI::SQL_WVARCHAR);
    $s->bind_param(5, $bool, DBI::SQL_TINYINT);
    $s->bind_param(6, $date, DBI::SQL_DATE);
    $s->bind_param(7, $time, DBI::SQL_TIME);
    $s->bind_param(8, $datetime, DBI::SQL_DATETIME);
    $s->bind_param(9, $timestamp, DBI::SQL_TIMESTAMP);
    $s->execute($string,$int,$float,$numeric,$bool,$date,$time,$datetime,$timestamp);
    $h->disconnect;
    	  
  3. Her er et Perl-script, der opdaterer en BigQuery-post:
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    use DBI;
    
    my $data_source = q/dbi:ODBC:MyBigQueryDataSource/;
    
    my $h = DBI->connect($data_source)
        or die "Can't connect to $data_source: $DBI::errstr";
    $h->{RaiseError} = 1;
    
    my $s = $h->prepare(q/UPDATE MyTestTable SET MyStringCol = ? WHERE MyStringCol = 'MyValue' /);
    my $string='MyNewValue';
    
    $s->bind_param(1, $string, DBI::SQL_WVARCHAR);
    
    $s->execute($string);
    $h->disconnect;

Arbejd med BigQuery-data i PHP

  1. Her er et PHP-script, der henter nogle BiqQuery-data:
    <?php
      $con = odbc_connect("MyBigQueryDataSource", "", "");
      $err = odbc_errormsg();
      if (strlen($err) <> 0) {
        echo odbc_errormsg();
      } else {
        $rs2 = odbc_exec($con, "select MyCol from MyTable");
        odbc_result_all($rs2);
        odbc_close($con);
      }
    ?>

Tilslutning af Excel til BigQuery

Følg disse trin for at returnere data fra BigQuery til Microsoft Excel ved hjælp af Microsoft Query:

  1. Data fanen, skal du vælge Ny forespørgsel> Fra anden kilde> Fra ODBC .
  2. Vælg BigQuery ODBC-datakilden, når du bliver bedt om det.
  3. Vælg en tabel fra de tilgængelige datasæt.
  4. Vælg Indlæs for at returnere BiqQuery-dataene til arbejdsarket.

    Bemærk, at for store resultatsæt skal du muligvis filtrere dataene ved hjælp af Excel, før dataene kan returneres til regnearket.

Opret forbindelse til BigQuery fra Oracle

  1. Opret en DG4ODBC init-fil på din Oracle-maskine. For at gøre dette skal du skifte til %ORACLE_HOME%\hs\admin vejviser. Opret en kopi af filen initdg4odbc.ora . Navngiv den nye fil initbq.ora .

    Bemærk I denne vejledning skal du erstatte %ORACLE_HOME% med placeringen af ​​dit Oracle HOME-bibliotek. For eksempel C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Sørg for, at disse parametre og værdier er til stede i din init-fil:
    HS_FDS_CONNECT_INFO = MyBigQueryDataSource
  3. Kommenter linjen, der aktiverer DG4ODBC-sporing. For eksempel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Tilføj en post til %ORACLE_HOME%\network\admin\listener.ora der opretter en SID_NAME for DG4ODBC. For eksempel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=bq)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Tilføj en DG4ODBC-post til %ORACLE_HOME%\network\admin\tnsnames.ora der specificerer SID_NAME oprettet i det forrige trin. For eksempel:
    BQ =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = bq)
        )
        (HS = OK)
      )
    

    Erstat oracle_host med værtsnavnet på din Oracle-maskine.

  6. Start (eller genstart) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Opret forbindelse til din Oracle-database i SQL*Plus.
  8. I SQL*Plus skal du oprette et databaselink til mål-BigQuery-forekomsten. For eksempel:
    CREATE PUBLIC DATABASE LINK bqlink CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'bq';
    
  9. Prøv at forespørge på dine BigQuery-data. For eksempel:
    SELECT * FROM "MyTable"@BQLINK;
    
Bemærkninger
  • Hvis du har problemer med at oprette forbindelse til BigQuery fra Oracle, skal du aktivere DG4ODBC-sporing og kontrollere sporingsfilerne skrevet til %ORACLE_HOME%\hs\trace vejviser. For at aktivere DG4ODBC-sporing skal du tilføje linjen HS_FDS_TRACE_LEVEL = DEBUG til initbq.ora og start/genstart derefter Oracle-lytteren. Hvis trace bibliotek eksisterer ikke, opret det.
  • Hvis du aktiverer ODBC Driver Manager-sporing, men ikke får en sporingsfil eller får en tom sporingsfil (tjek efter C:\SQL.log), skal du ændre sporingsfilens placering til Windows TEMP-mappen. For eksempel C:\Windows\Temp\SQL.log .

  1. MySQL LAST_INSERT_ID() brugt med flere poster INSERT-sætning

  2. Tæl tabelrækker

  3. Oracle 12c-installationen kunne ikke få adgang til den midlertidige placering

  4. Fejlkode 1292 - Trunkeret forkert DOBBELT værdi - Mysql