Het ODBC-stuurprogramma van Azure Cosmos DB gebruiken om verbinding te maken met BI en hulpprogramma's voor gegevensanalyse

VAN TOEPASSING OP: NoSQL

In dit artikel wordt uitgelegd hoe u het ODBC-stuurprogramma van Azure Cosmos DB installeert en gebruikt om genormaliseerde tabellen en weergaven te maken voor uw Azure Cosmos DB-gegevens. U kunt een query uitvoeren op de genormaliseerde gegevens met SQL-query's of de gegevens importeren in Power BI of andere BI- en analysesoftware om rapporten en visualisaties te maken.

Azure Cosmos DB is een schemaloze database, die snelle toepassingsontwikkeling mogelijk maakt en waarmee u gegevensmodellen kunt herhalen zonder beperkt te zijn tot een strikt schema. Eén Azure Cosmos DB-database kan JSON-documenten van verschillende structuren bevatten. Als u deze gegevens wilt analyseren of rapporteren, moet u de gegevens mogelijk platmaken zodat deze in een schema passen.

Het ODBC-stuurprogramma normaliseert Azure Cosmos DB-gegevens in tabellen en weergaven die voldoen aan uw gegevensanalyse- en rapportagebehoeften. Met de genormaliseerde schema's kunt u ODBC-compatibele hulpprogramma's gebruiken voor toegang tot de gegevens. De schema's hebben geen invloed op de onderliggende gegevens en vereisen niet dat ontwikkelaars zich eraan houden. Het ODBC-stuurprogramma helpt Azure Cosmos DB-databases nuttig te maken voor gegevensanalisten en ontwikkelteams.

U kunt SQL-bewerkingen uitvoeren op basis van de genormaliseerde tabellen en weergaven, waaronder groeperen op query's, invoegen, bijwerken en verwijderen. Het stuurprogramma is compatibel met ODBC 3.8 en ondersteunt ANSI SQL-92-syntaxis.

Belangrijk

Overweeg het gebruik van Azure Synapse Link voor Azure Cosmos DB om tabellen en weergaven voor uw gegevens te maken. Synapse Link biedt verschillende prestatievoordelen voor grote gegevenssets ten opzichte van het ODBC-stuurprogramma. U kunt de genormaliseerde Azure Cosmos DB-gegevens ook verbinden met andere softwareoplossingen, zoals SQL Server Integration Services (SSIS), QlikSense, Tableau en andere analysesoftware, BI en hulpprogramma's voor gegevensintegratie. U kunt deze oplossingen gebruiken om visualisaties te analyseren, verplaatsen, transformeren en maken met uw Azure Cosmos DB-gegevens.

Belangrijk

  • Verbinding maken met Azure Cosmos DB met het ODBC-stuurprogramma wordt momenteel alleen ondersteund voor Azure Cosmos DB voor NoSQL.
  • Het huidige ODBC-stuurprogramma biedt geen ondersteuning voor cumulatieve pushdowns en heeft bekende problemen met sommige analysehulpprogramma's. Totdat er een nieuwe versie wordt uitgebracht, kunt u een van de volgende alternatieven gebruiken:

Installeer het ODBC-stuurprogramma en maak verbinding met uw database

  1. Download de stuurprogramma's voor uw omgeving:

    Installer Ondersteunde besturingssystemen
    Microsoft Azure Cosmos DB ODBC 64-bit.msi voor 64-bits Windows 64-bits versies van Windows 8.1 of hoger, Windows 8, Windows 7. 64-bits versies van Windows Server 2012 R2, Windows Server 2012 en Windows Server 2008 R2.
    Microsoft Azure Cosmos DB ODBC 32x64-bit.msi voor 32-bits op 64-bits Windows 64-bits versies van Windows 8.1 of hoger, Windows 8, Windows 7, Windows XP, Windows Vista. 64-bits versies van Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 en Windows Server 2003.
    Microsoft Azure Cosmos DB ODBC 32-bit.msi voor 32-bits Windows 32-bits versies van Windows 8.1 of hoger, Windows 8, Windows 7, Windows XP en Windows Vista.
  2. Voer het .msi-bestand lokaal uit, waarmee de installatiewizard van het ODBC-stuurprogramma van Microsoft Azure Cosmos DB wordt gestart.

  3. Voltooi de installatiewizard met behulp van de standaardinvoer.

  4. Nadat het stuurprogramma is geïnstalleerd, typt u ODBC-gegevensbronnen in het zoekvak van Windows en opent u ODBC-gegevensbronbeheerder.

  5. Zorg ervoor dat het ODBC-stuurprogramma voor Microsoft Azure DocumentDB wordt vermeld op het tabblad Stuurprogramma's .

    Schermopname van het venster ODBC-gegevensbronbeheerder.

  6. Selecteer het tabblad Gebruikers-DSN en selecteer vervolgens Toevoegen om een nieuwe gegevensbronnaam (DSN) te maken. U kunt ook een systeem-DSN maken.

  7. Selecteer in het venster Nieuwe gegevensbron makende optie ODBC-stuurprogramma voor Microsoft Azure DocumentDB en selecteer vervolgens Voltooien.

  8. Vul in het venster DSN-installatie van documentDB ODBC-stuurprogramma de volgende gegevens in:

    Schermopname van het installatievenster van de dns-server (domain name server).

    • Naam van gegevensbron: een beschrijvende naam voor de ODBC-DSN. Deze naam is uniek voor dit Azure Cosmos DB-account.
    • Beschrijving: een korte beschrijving van de gegevensbron.
    • Host: de URI voor uw Azure Cosmos DB-account. U kunt deze informatie ophalen op de pagina Sleutels in uw Azure Cosmos DB-account in de Azure Portal.
    • Toegangssleutel: de primaire of secundaire sleutel, lezen-schrijven of alleen-lezensleutel van de pagina Azure Cosmos DB-sleutels in de Azure Portal. U kunt het beste de alleen-lezensleutels gebruiken als u de DSN gebruikt voor de verwerking en rapportage van alleen-lezengegevens.

    Als u een verificatiefout wilt voorkomen, gebruikt u de kopieerknoppen om de URI en sleutel uit de Azure Portal te kopiëren.

    Schermopname van de pagina Azure Cosmos DB-sleutels.

    • Toegangssleutel versleutelen voor: selecteer de beste keuze, op basis van wie de computer gebruikt.
  9. Selecteer Testen om te controleren of u verbinding kunt maken met uw Azure Cosmos DB-account.

  10. Selecteer Geavanceerde opties en stel de volgende waarden in:

    • REST API-versie: selecteer de REST API-versie voor uw bewerkingen. De standaardwaarde is 2015-12-16.

      Als u containers met grote partitiesleutels hebt die REST API-versie 2018-12-31nodig hebben, typt 2018-12-31u en volgt u de stappen aan het einde van deze procedure.

    • Queryconsistentie: selecteer het consistentieniveau voor uw bewerkingen. De standaardwaarde is Sessie.

    • Aantal nieuwe pogingen: voer het aantal keren in dat een bewerking opnieuw moet worden uitgevoerd als de eerste aanvraag niet wordt voltooid vanwege een beperking van de servicesnelheid.

    • Schemabestand: als u geen schemabestand selecteert, scant het stuurprogramma de eerste pagina met gegevens voor elke container om het schema, containertoewijzing genoemd, voor elke sessie te bepalen. Dit proces kan leiden tot een lange opstarttijd voor toepassingen die gebruikmaken van de DSN. U kunt het beste een schemabestand koppelen aan de DSN.

      • Als u al een schemabestand hebt, selecteert u Bladeren, navigeert u naar het bestand, selecteert u Opslaan en vervolgens OK.

      • Als u nog geen schemabestand hebt, selecteert u OK en volgt u de stappen in de volgende sectie om een schemadefinitie te maken. Nadat u het schema hebt gemaakt, gaat u terug naar dit venster Geavanceerde opties om het schemabestand toe te voegen.

Nadat u OK hebt geselecteerd om het DSN-installatievenster van documentDB ODBC-stuurprogramma te voltooien en te sluiten, wordt de nieuwe gebruikers-DSN weergegeven op het tabblad Gebruikers-DSN van het venster ODBC-gegevensbronbeheerder .

Schermopname van de nieuwe User D S N op het tabblad User D S N.

Bewerk het Windows-register ter ondersteuning van REST API-versie 31-12-2018

Als u containers met grote partitiesleutels hebt die REST API versie 2018-12-31 nodig hebben, volgt u deze stappen om het Windows-register bij te werken ter ondersteuning van deze versie.

  1. Typ regedit in het menu Start van Windows om de Register-editor te zoeken en te openen.

  2. Navigeer in de Register-editor naar het pad Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI.

  3. Maak een nieuwe subsleutel met dezelfde naam als uw DSN, zoals ODBC-DSN voor Contoso-account.

  4. Navigeer naar de nieuwe ODBC DSN-subsleutel van het Contoso-account en klik met de rechtermuisknop om een nieuwe tekenreekswaarde toe te voegen:

    • Waardenaam: IgnoreSessionToken

    • Waardegegevens: 1

    Schermopname van de instellingen van de Windows Register-editor.

Een schemadefinitie maken

Er zijn twee soorten samplingmethoden die u kunt gebruiken om een schema te maken: containertoewijzing of toewijzing van tabelscheidingstekens. Een steekproefsessie kan beide samplingmethoden gebruiken, maar elke container kan slechts één van de samplingmethoden gebruiken. Welke methode moet worden gebruikt, is afhankelijk van de kenmerken van uw gegevens.

  • Met containertoewijzing worden de gegevens op een containerpagina opgehaald om de gegevensstructuur te bepalen en wordt de container getransponeerd naar een tabel aan de ODBC-zijde. Deze samplingmethode is efficiënt en snel wanneer de gegevens in een container homogeen zijn.

  • Toewijzing van tabelscheidingstekens biedt robuustere steekproeven voor heterogene gegevens. Met deze methode wordt het bereik van de steekproef ingesteld op een set kenmerken en bijbehorende waarden.

    Als een document bijvoorbeeld de eigenschap Type bevat, kunt u de steekproef instellen op de waarden van deze eigenschap. Het eindresultaat van de steekproef is een set tabellen voor elk van de Type-waarden die u hebt opgegeven. Type = Auto produceert een autotabel , terwijl Type = Vlak een vlaktabel produceert.

Volg deze stappen om een schema te definiëren. Voor de toewijzingsmethode tabelscheidingstekens voert u extra stappen uit om kenmerken en waarden voor het schema te definiëren.

  1. Selecteer op het tabblad Gebruikers-DSN van het venster ODBC-gegevensbronbeheerder de naam van uw Azure Cosmos DB-gebruikers-DSN en selecteer vervolgens Configureren.

  2. Selecteer in het venster DSN-installatie van documentDB ODBC-stuurprogrammade optie Schema-editor.

    Schermopname van de knop Schema-editor in het venster D S N Setup.

  3. Selecteer In het venster Schema-editor de optie Nieuwe maken.

  4. In het venster Schema genereren worden alle verzamelingen in het Azure Cosmos DB-account weergegeven. Schakel de selectievakjes in naast de containers die u wilt nemen.

  5. Als u de methode voor containertoewijzing wilt gebruiken, selecteert u Voorbeeld.

    Als u toewijzing van tabelscheidingstekens wilt gebruiken, voert u de volgende stappen uit om kenmerken en waarden te definiëren voor het bereik van het voorbeeld.

    1. Selecteer Bewerken in de kolom Toewijzingsdefinitie voor uw DSN.

    2. Selecteer in het venster Toewijzingsdefinitie onder Toewijzingsmethodede optie Tabelscheidingstekens.

    3. Typ in het vak Kenmerken de naam van een scheidingstekeneigenschap in het document waarvoor u het bereik van de steekproef wilt bepalen, bijvoorbeeld Plaats. Druk op Enter.

    4. Als u de steekproef wilt beperken tot bepaalde waarden voor het kenmerk dat u hebt ingevoerd, selecteert u het kenmerk en voert u vervolgens een waarde in het vak Waarde in, zoals Seattle, en drukt u op Enter. U kunt meerdere waarden voor kenmerken toevoegen. Zorg ervoor dat het juiste kenmerk is geselecteerd wanneer u waarden invoert.

    5. Wanneer u klaar bent met het invoeren van kenmerken en waarden, selecteert u OK.

    6. Selecteer In het venster Schema genereren de optie Voorbeeld.

  6. Verfijn uw schema op het tabblad Ontwerpweergave . De ontwerpweergave vertegenwoordigt de database, het schema en de tabel. In de tabelweergave wordt de set eigenschappen weergegeven die zijn gekoppeld aan de kolomnamen, zoals SQL-naam en bronnaam.

    Voor elke kolom kunt u de SQL-naam, het SQL-type, de SQL-lengte, de schaal, de precisie en de null-waarde wijzigen, indien van toepassing.

    U kunt Kolom verbergen instellen op true als u die kolom wilt uitsluiten van queryresultaten. Kolommen die zijn gemarkeerd als Kolom verbergen = waar , worden niet geretourneerd voor selectie en projectie, hoewel ze nog steeds deel uitmaken van het schema. U kunt bijvoorbeeld alle vereiste eigenschappen van het Azure Cosmos DB-systeem verbergen die beginnen met _. De kolom id is het enige veld dat u niet kunt verbergen, omdat dit de primaire sleutel is in het genormaliseerde schema.

  7. Wanneer u klaar bent met het definiëren van het schema, selecteert u Bestand>opslaan, navigeert u naar de map waarin u het wilt opslaan en selecteert u Opslaan.

  8. Als u dit schema wilt gebruiken met een DSN, selecteert u geavanceerde opties in het venster DSN-installatie van documentDB ODBC-stuurprogramma. Selecteer het vak Schemabestand , navigeer naar het opgeslagen schema, selecteer OK en selecteer vervolgens opnieuw OK . Als u het schemabestand opslaat, wordt de DSN-verbinding gewijzigd in het bereik van de door het schema gedefinieerde gegevens en structuur.

Weergaven maken

U kunt desgewenst weergaven definiëren en maken in de Schema-editor als onderdeel van het steekproefproces. Deze weergaven zijn gelijk aan SQL-weergaven. De weergaven zijn alleen-lezen en hebben betrekking op de selecties en projecties van de gedefinieerde Azure Cosmos DB SQL-query.

Volg deze stappen om een weergave voor uw gegevens te maken:

  1. Selecteer op het tabblad Voorbeeldweergave van het venster Schema-editor de containers die u wilt nemen en selecteer vervolgens Toevoegen in de kolom Definitie weergeven .

    Schermopname van het maken van een weergave in het stuurprogramma.

  2. Selecteer in het venster Definities weergeven de optie Nieuw. Voer een naam in voor de weergave, bijvoorbeeld WerknemersvanSeattleView, en selecteer vervolgens OK.

  3. Voer in het venster Weergave bewerken een Azure Cosmos DB-query in, bijvoorbeeld:

    SELECT c.City, c.EmployeeName, c.Level, c.Age, c.Manager FROM c WHERE c.City = "Seattle"

  4. Selecteer OK.

    Schermopname van het toevoegen van een query bij het maken van een weergave.

U kunt zoveel weergaven maken als u wilt. Als u klaar bent met het definiëren van de weergaven, selecteert u Voorbeeld om een voorbeeld van de gegevens te nemen.

Belangrijk

De querytekst in de weergavedefinitie mag geen regeleinden bevatten. Anders krijgt u een algemene fout bij het bekijken van een voorbeeld van de weergave.

Query's uitvoeren met SQL Server Management Studio

Nadat u een gebruikers-DSN voor een OdBC-stuurprogramma van Azure Cosmos DB hebt ingesteld, kunt u een query uitvoeren op Azure Cosmos DB vanuit SQL Server Management Studio (SSMS) door een gekoppelde serververbinding in te stellen.

  1. Installeer SQL Server Management Studio en maak verbinding met de server.

  2. Maak in de SSMS-queryeditor een gekoppeld serverobject voor de gegevensbron door de volgende opdrachten uit te voeren. Vervang door DEMOCOSMOS de naam van de gekoppelde server en SDS Name door de naam van de gegevensbron.

    USE [master]
    GO
    
    EXEC master.dbo.sp_addlinkedserver @server = N'DEMOCOSMOS', @srvproduct=N'', @provider=N'MSDASQL', @datasrc=N'SDS Name'
    
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'DEMOCOSMOS', @useself=N'False', @locallogin=NULL, @rmtuser=NULL, @rmtpassword=NULL
    
    GO
    

Als u de naam van de nieuwe gekoppelde server wilt zien, vernieuwt u de lijst met gekoppelde servers.

Schermopname van een gekoppelde server in S S M S.

Voer een SSMS-query in om een query uit te voeren op de gekoppelde database. In dit voorbeeld selecteert de query uit de tabel in de container met de naam customers:

SELECT * FROM OPENQUERY(DEMOCOSMOS, 'SELECT *  FROM [customers].[customers]')

Voer de query uit. De resultaten moeten er ongeveer uitzien als in de volgende uitvoer:

attachments/  1507476156    521 Bassett Avenue, Wikieup, Missouri, 5422   "2602bc56-0000-0000-0000-59da42bc0000"   2015-02-06T05:32:32 +05:00 f1ca3044f17149f3bc61f7b9c78a26df
attachments/  1507476156    167 Nassau Street, Tuskahoma, Illinois, 5998   "2602bd56-0000-0000-0000-59da42bc0000"   2015-06-16T08:54:17 +04:00 f75f949ea8de466a9ef2bdb7ce065ac8
attachments/  1507476156    885 Strong Place, Cassel, Montana, 2069       "2602be56-0000-0000-0000-59da42bc0000"   2015-03-20T07:21:47 +04:00 ef0365fb40c04bb6a3ffc4bc77c905fd
attachments/  1507476156    515 Barwell Terrace, Defiance, Tennessee, 6439     "2602c056-0000-0000-0000-59da42bc0000"   2014-10-16T06:49:04 +04:00      e913fe543490432f871bc42019663518
attachments/  1507476156    570 Ruby Street, Spokane, Idaho, 9025       "2602c156-0000-0000-0000-59da42bc0000"   2014-10-30T05:49:33 +04:00 e53072057d314bc9b36c89a8350048f3

Uw gegevens weergeven in Power BI Desktop

U kunt uw DSN gebruiken om verbinding te maken met Azure Cosmos DB met alle ODBC-compatibele hulpprogramma's. In deze procedure ziet u hoe u verbinding maakt met Power BI Desktop om een Power BI-visualisatie te maken.

  1. In Power BI Desktop selecteert u Gegevens ophalen.

    Schermopname van Gegevens ophalen in Power BI Desktop.

  2. Selecteer in het venster Gegevens ophalende optie Overige>ODBC en selecteer vervolgens Verbinding maken.

    Schermopname van het kiezen van ODBC-gegevensbron in Power BI Get Data.

  3. Selecteer in het venster Van ODBC de DSN die u hebt gemaakt en selecteer vervolgens OK.

    Schermopname van het kiezen van de D S N in Power BI Get Data.

  4. Selecteer in het venster Een gegevensbron openen met behulp van een ODBC-stuurprogrammade optie Standaard of Aangepast en selecteer vervolgens Verbinding maken.

  5. Vouw in het venster Navigator in het linkerdeelvenster de database en het schema uit en selecteer de tabel. Het resultatenvenster bevat de gegevens die gebruikmaken van het schema dat u hebt gemaakt.

    Schermopname van het selecteren van de tabel in Power BI Get Data.

  6. Als u de gegevens in Power BI Desktop wilt visualiseren, schakelt u het selectievakje naast de tabelnaam in en selecteert u vervolgens Laden.

  7. Selecteer in Power BI Desktop het tabblad Gegevens aan de linkerkant van het scherm om te bevestigen dat uw gegevens zijn geïmporteerd.

  8. Selecteer het tabblad Rapport aan de linkerkant van het scherm, selecteer Nieuwe visual op het lint en pas vervolgens de visual aan.

Problemen oplossen

  • Probleem: u krijgt de volgende fout wanneer u verbinding probeert te maken:

    [HY000]: [Microsoft][Azure Cosmos DB] (401) HTTP 401 Authentication Error: {"code":"Unauthorized","message":"The input authorization token can't serve the request. Please check that the expected payload is built as per the protocol, and check the key being used. Server used the following payload to sign: 'get\ndbs\n\nfri, 20 jan 2017 03:43:55 gmt\n\n'\r\nActivityId: 9acb3c0d-cb31-4b78-ac0a-413c8d33e373"}
    

    Oplossing: Zorg ervoor dat de waarden host en toegangssleutel die u hebt gekopieerd uit de Azure Portal juist zijn en probeer het opnieuw.

  • Probleem: U krijgt de volgende fout in SSMS bij het maken van een gekoppelde Azure Cosmos DB-server:

    Msg 7312, Level 16, State 1, Line 44
    
    Invalid use of schema or catalog for OLE DB provider "MSDASQL" for linked server "DEMOCOSMOS". A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema.
    

    Oplossing: Een gekoppelde Azure Cosmos DB-server biedt geen ondersteuning voor vierdelige naamgeving.

Volgende stappen