sql >> Databasteknik >  >> RDS >> Database

Google BigQuery ODBC-drivrutin

Vi har släppt en ODBC-drivrutin för Google BigQuery. Drivrutinen låter dig fråga och uppdatera BigQuery-data i andra applikationer än Google BigQuery-konsolen. Vi tänkte att vi skulle dela med dig av några av de saker du kan göra i dessa tredjepartsprogram (till exempel Perl, PHP, Excel och Oracle).

Installera BigQuery ODBC-drivrutinen

  1. Installera och licensiera Google BigQuery ODBC-drivrutinen på maskinen där klientprogrammet är installerat.

    Om du till exempel vill arbeta med BigQuery-data i Excel, installerar du BigQuery ODBC-drivrutinen på maskinen där Excel är installerat.

    För att göra detta, kör fildistributionen och följ instruktionerna på skärmen.

    Installationsprogrammet startar Easysoft License Manager, eftersom du inte kan använda BigQuery ODBC-drivrutinen förrän en licens har erhållits.

    Följande typer av licenser är tillgängliga:

    • Gratis tidsbegränsad testlicens som ger dig fri och obegränsad användning av produkten under en begränsad period (vanligtvis 14 dagar).
    • Fullständig licens om du har köpt produkten. När du köper produkten får du en auktoriseringskod som du använder för att få en licens
  2. I Easysoft License Manager anger du dina uppgifter.

    Du MÅSTE ange fälten Namn, E-postadress och Företag.

    E-postadressen MÅSTE vara densamma som adressen som användes för att registrera och ladda ner från Easysofts webbplats, annars kommer du inte att kunna erhålla testlicenser.

  3. Välj Begär licens.

    Du ombeds ange en licenstyp.

  4. Gör något av följande:
    • För en testlicens klickar du på Tidsbegränsad provperiod och klickar sedan på Nästa.

      Licenshanteraren frågar vilken programvara du licensierar. Välj Easysoft BigQuery ODBC Driver från rullgardinsmenyn och klicka sedan på Nästa.

    • Om du har erhållit en auktoriseringskod för en köpt licens, välj Non-expiring License och klicka sedan på Nästa.

      Licenshanteraren begär din auktoriseringskod.

      Ange auktoriseringskoden och klicka sedan på Nästa.

  5. Licenshanteraren visar en sammanfattning av den information du angett och låter dig välja metod för att ansöka om din licens.
  6. Gör något av följande:
    • Välj Online-förfrågan om din maskin är ansluten till internet och kan göra utgående anslutningar till port 8884.

      Licenshanteraren skickar sedan en begäran till Easysofts licensserver för att aktivera din licensnyckel automatiskt. Detta är den snabbaste metoden och resulterar i att dina uppgifter omedelbart läggs in i vår supportdatabas.

    • De återstående tre alternativen (e-postbegäran, utskriftsbegäran och Visa begäran) är alla sätt att få en licens om din maskin är offline (dvs. inte har en anslutning till internet).

      Var och en av dessa metoder innebär att Easysoft förses med information inklusive ditt maskinnummer (ett nummer som är unikt för din maskin) och sedan väntar på att få din licensnyckel.

      Istället för att e-posta dina uppgifter till Easysoft kan du ange dem direkt på Easysofts webbplats och din licensnyckel kommer automatiskt att skickas till dig via e-post.

      För att använda den här metoden, klicka på Visa begäran och besök sedan:

      • Provlicenssida
      • Fullständig licenssida

      På licenssidan anger du ditt maskinnummer (och auktoriseringskoden för köpt licens), klickar på Skicka och din licensnyckel kommer att skickas till dig via e-post.

      När du får licensnyckeln kan du aktivera den antingen genom att dubbelklicka på e-postbilagan eller genom att klicka på Enter License på huvudskärmen i License Manager och klistra in licensnyckeln i dialogrutan.

    • Välj Slutför för att avsluta Licenshanteraren.

      Installationen är klar.

Konfigurera en ODBC-datakälla

Innan BigQuery ODBC-drivrutinen kan användas för att ansluta en applikation till BigQuery, är det nödvändigt att konfigurera en ODBC-datakälla. En ODBC-datakälla lagrar anslutningsdetaljerna för måldatabasen (t.ex. BigQuery) och ODBC-drivrutinen som krävs för att ansluta till den (t.ex. BigQuery ODBC-drivrutinen).

ODBC-datakällor konfigureras i ODBC Administrator, som ingår i Windows. Hur ODBC Administrator körs beror på om ditt program är 32-bitars eller 64-bitars:

  • Mitt program är 32-bitars

    I dialogrutan Kör i Windows skriver du:

    %windir%\syswow64\odbcad32.exe

  • Mitt program är 64-bitars

    Öppna System och säkerhet> Administrativa verktyg på Kontrollpanelen och öppna sedan ODBC-datakällor (64-bitars). (På Windows Server 2003 och tidigare är kontrollpanelens applet som startar ODBC Administrator märkt Data Sources.)

Hur vet man om ett program är 32-bitars eller 64-bitars?

Applikation Anteckningar
Excel Det finns både en 32-bitars och en 64-bitarsversion av Excel. För att ta reda på vilken version av Excel du har, starta Excel och starta sedan Windows Task Manager. I Aktivitetshanteraren väljer du fliken Processer. Leta efter Excel.exe i listan. Om detta processnamn följs av *32 , din version av Excel är 32-bitars. Annars är din version av Excel 64-bitars.
GoodData CloudConnect Deigner är ett 64-bitars program.
Mikrostrategi MicroStrategy är ett 32-bitars program.
Oracle Oracle-komponenten som interagerar med MongoDB ODBC-drivrutinen kallas DG4ODBC. Det finns både en 32-bitars och en 64-bitarsversion av DG4ODBC. För att ta reda på vilken version av DG4ODBC du har, starta Windows Task Manager och välj fliken Processer. I ett kommandotolksfönster skriver du dg4odbc --help . Leta efter DG4ODBC-processen i Windows Task Manager. Om bildnamnet är "dg4odbc.exe *32" är DG4ODBC 32-bitars. Om bildnamnet är "dg4odbc.exe" är DG4ODBC 64-bitars. Tryck på CTRL+C i kommandotolksfönstret när du har använt Windows Task Manager för att ta reda på DG4ODBC:s arkitektur.
Oracle Business Intelligence Enterprise Edition (OBIEE) OBIEE-komponenten som interagerar med MongoDB ODBC-drivrutinen kallas Oracle BI Administration Tool. Oracle BI Administration Tool är 64-bitars.
PHPRunner PHPRunner är ett 32-bitars program.
QlikView QlikView är ett 32-bitars program om kryssrutan Force 32 Bit är markerad. Annars är QlikView ett 64-bitarsprogram.
SAP BusinessObjects Central Management Server är en 64-bitars applikation. Business View Manager, Information Design Tool och Web Intelligence Rich Client är 32-bitars applikationer.
SAP Crystal Reports Crystal Reports är ett 32-bitars program.
SQL-server Det finns både en 32-bitars och en 64-bitarsversion av SQL Server. För att ta reda på vilken version av SQL Server du har, anslut till din SQL Server-instans och kör sedan denna SQL-sats:
select SERVERPROPERTY('edition')

Om du har 64-bitarsversionen av SQL Server och vill använda en länkad server med BigQuery ODBC-drivrutinen är din applikation 64-bitars.

Om du har 32-bitarsversionen av SQL Server eller vill använda SSIS med BigQuery ODBC-drivrutinen är din applikation 32-bitars.

Tableau Tableau är ett 32-bitars program.
TIBCO Spotfire TIBCO Spotfire är en 64-bitars applikation.

I ODBC Administrator:

  1. Välj fliken System DSN och välj sedan Lägg till.
  2. I dialogrutan Skapa ny datakälla väljer du Easysoft ODBC-BigQuery-drivrutin och sedan Slutför.
  3. Fyll i dessa fält i dialogrutan Easysoft ODBC-BigQuery Driver DSN Setup:
    Inställning Värde
    DSN BigQuery
    Uppdatera token Välj Autentisera och erhåll token och ge BigQuery ODBC-drivrutinen behörighet att komma åt din BigQuery-data för att fylla i detta fält.
  4. I din app ansluter du till din nykonfigurerade datakälla och kör en exempelfråga. Till exempel:
    select * from MyTable limit 10

Arbeta med BigQuery-data i Perl

Strawberry Perl är en Perl-distribution för Windows som inkluderar de nödvändiga mellanvaruskikten (Perl DBI och Perl DBD::ODBC) för att göra det möjligt för BigQuery ODBC-drivrutinen att ansluta dina Perl-applikationer till BigQuery.

  1. Här är ett Perl-skript som hämtar lite 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. Här är ett Perl-skript som infogar lite 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. Här är ett Perl-skript som uppdaterar 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;

Arbeta med BigQuery-data i PHP

  1. Här är ett PHP-skript som hämtar lite 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);
      }
    ?>

Ansluter Excel till BigQuery

Följ dessa steg för att returnera data från BigQuery till Microsoft Excel genom att använda Microsoft Query:

  1. Data fliken, välj Ny fråga> Från annan källa> Från ODBC .
  2. Välj BigQuery ODBC-datakällan när du uppmanas.
  3. Välj en tabell från de tillgängliga datauppsättningarna.
  4. Välj Ladda för att returnera BiqQuery-data till arbetsbladet.

    Observera att för stora resultatuppsättningar kan du behöva filtrera data med Excel innan data kan returneras till kalkylbladet.

Anslut till BigQuery från Oracle

  1. Skapa en DG4ODBC init-fil på din Oracle-dator. För att göra detta, byt till %ORACLE_HOME%\hs\admin katalog. Skapa en kopia av filen initdg4odbc.ora . Namnge den nya filen initbq.ora .

    Obs I dessa instruktioner ersätter du %ORACLE_HOME% med platsen för din Oracle HOME-katalog. Till exempel, C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Se till att dessa parametrar och värden finns i din init-fil:
    HS_FDS_CONNECT_INFO = MyBigQueryDataSource
  3. Kommentera raden som möjliggör DG4ODBC-spårning. Till exempel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Lägg till en post i %ORACLE_HOME%\network\admin\listener.ora som skapar en SID_NAME för DG4ODBC. Till exempel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=bq)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Lägg till en DG4ODBC-post i %ORACLE_HOME%\network\admin\tnsnames.ora som anger SID_NAME som skapades i föregående steg. Till exempel:
    BQ =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = bq)
        )
        (HS = OK)
      )
    

    Ersätt oracle_host med värdnamnet för din Oracle-maskin.

  6. Starta (eller starta om) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Anslut till din Oracle-databas i SQL*Plus.
  8. Skapa en databaslänk för mål-BigQuery-instansen i SQL*Plus. Till exempel:
    CREATE PUBLIC DATABASE LINK bqlink CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'bq';
    
  9. Testa att fråga efter din BigQuery-data. Till exempel:
    SELECT * FROM "MyTable"@BQLINK;
    
Anteckningar
  • Om du har problem med att ansluta till BigQuery från Oracle, aktivera DG4ODBC-spårning och kontrollera spårningsfilerna som skrivits till %ORACLE_HOME%\hs\trace katalog. För att aktivera DG4ODBC-spårning, lägg till raden HS_FDS_TRACE_LEVEL = DEBUG till initbq.ora och starta/starta om Oracle-lyssnaren. Om trace katalogen finns inte, skapa den.
  • Om du aktiverar ODBC Driver Manager-spårning, men inte får en spårningsfil eller får en tom spårningsfil (kontrollera efter C:\SQL.log), ändrar du spårningsfilens plats till Windows TEMP-katalogen. Till exempel, C:\Windows\Temp\SQL.log .

  1. Hur UPPDATERA och VÄLJA samtidigt

  2. Halloweenproblemet – del 4

  3. Hur återställer jag mysql root-lösenordet?

  4. Minimal loggning med INSERT...SELECT och snabbladdningskontext