Az Azure Cosmos DB ODBC-illesztő használata BI- és adatelemzési eszközökhöz való csatlakozáshoz

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Ez a cikk végigvezeti az Azure Cosmos DB ODBC-illesztő telepítésén és használatával, hogy normalizált táblákat és nézeteket hozzon létre az Azure Cosmos DB-adatokhoz. Lekérdezheti a normalizált adatokat SQL-lekérdezésekkel, vagy importálhatja az adatokat a Power BI-ba vagy más BI- és elemzési szoftverekbe jelentések és vizualizációk létrehozásához.

Az Azure Cosmos DB egy séma nélküli adatbázis, amely lehetővé teszi a gyors alkalmazásfejlesztést, és lehetővé teszi az adatmodellek iterálását anélkül, hogy szigorú sémára lenne korlátozva. Egyetlen Azure Cosmos DB-adatbázis különböző struktúrák JSON-dokumentumait tartalmazhatja. Előfordulhat, hogy az adatok elemzéséhez vagy jelentéséhez el kell simítania az adatokat, hogy beleférjenek egy sémába.

Az ODBC-illesztő normalizálja az Azure Cosmos DB-adatokat az adatelemzési és jelentéskészítési igényeknek megfelelő táblákba és nézetekbe. A normalizált sémák lehetővé teszik, hogy ODBC-kompatibilis eszközöket használjon az adatok eléréséhez. A sémák nincsenek hatással a mögöttes adatokra, és nem követelik meg a fejlesztőktől, hogy tartsák be azokat. Az ODBC-illesztő segít hasznossá tenni az Azure Cosmos DB-adatbázisokat az adatelemzők és a fejlesztői csapatok számára.

SQL-műveleteket végezhet a normalizált táblákon és nézeteken, beleértve a lekérdezések, beszúrások, frissítések és törlések szerinti csoportosítást. Az illesztőprogram ODBC 3.8-kompatibilis, és támogatja az ANSI SQL-92 szintaxisát.

Fontos

Érdemes lehet az Azure Cosmos DB-hez készült Azure Synapse Link használatával táblákat és nézeteket létrehozni az adatokhoz. Synapse Link különböző teljesítményelőnyök állnak a nagy adathalmazok számára az ODBC-illesztővel szemben. A normalizált Azure Cosmos DB-adatokat más szoftvermegoldásokhoz is csatlakoztathatja, például SQL Server Integration Services (SSIS), QlikSense, Tableau és egyéb elemzési szoftverek, BI és adatintegrációs eszközök. Ezekkel a megoldásokkal vizualizációkat elemezhet, helyezhet át, alakíthat át és hozhat létre az Azure Cosmos DB-adatokkal.

Fontos

  • Az Azure Cosmos DB-hez az ODBC-illesztővel való csatlakozás jelenleg csak az Azure Cosmos DB for NoSQL esetében támogatott.
  • A jelenlegi ODBC-illesztő nem támogatja az összesített leküldéseket, és ismert problémákat tapasztal bizonyos elemzési eszközökkel kapcsolatban. Az új verzió kiadásáig használhatja az alábbi lehetőségek egyikét:

Telepítse az ODBC-illesztőprogramot, és csatlakozzon az adatbázishoz

  1. Töltse le a környezethez tartozó illesztőprogramokat:

    Beiktató Támogatott operációs rendszerek
    Microsoft Azure Cosmos DB ODBC 64-bit.msi 64 bites Windows rendszeren A Windows 8.1 vagy újabb verziók 64 bites verziói, Windows 8, Windows 7. A Windows Server 2012 R2, Windows Server 2012 és Windows Server 2008 R2 64 bites verziói.
    32 bites Microsoft Azure Cosmos DB ODBC 32x64-bit.msi 64 bites Windows rendszeren A Windows 8.1 vagy újabb verziók 64 bites verziói, Windows 8, Windows 7, Windows XP, Windows Vista. Az Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 és Windows Server 2003 64 bites verziói.
    Microsoft Azure Cosmos DB ODBC 32-bit.msi 32 bites Windowshoz A Windows 8.1 vagy újabb, Windows 8, Windows 7, Windows XP és Windows Vista 32 bites verziói.
  2. Futtassa helyileg a .msi fájlt, amely elindítja a Microsoft Azure Cosmos DB ODBC illesztőprogram-telepítővarázslóját.

  3. Hajtsa végre a telepítővarázslót az alapértelmezett bemenettel.

  4. Az illesztőprogram telepítése után írja be az ODBC-adatforrásokat a Windows keresőmezőbe, és nyissa meg az ODBC adatforrás-rendszergazdát.

  5. Győződjön meg arról, hogy a Microsoft Azure DocumentDB ODBC-illesztőmegjelenik az Illesztőprogramok lapon.

    Képernyőkép az ODBC adatforrásadminisztrátor ablakáról.

  6. Válassza a Felhasználói DSN lapot, majd válassza a Hozzáadás lehetőséget egy új adatforrásnév (DSN) létrehozásához. Rendszer DSN-t is létrehozhat.

  7. Az Új adatforrás létrehozása ablakban válassza a Microsoft Azure DocumentDB ODBC-illesztőprogram lehetőséget, majd válassza a Befejezés lehetőséget.

  8. A DocumentDB ODBC Driver DSN Setup (DSN-illesztőprogram beállítása ) ablakban adja meg a következő információkat:

    Képernyőkép a tartománynév-kiszolgáló (DNS) beállítási ablakáról.

    • Adatforrás neve: Az ODBC DSN rövid neve. Ez a név egyedi ehhez az Azure Cosmos DB-fiókhoz.
    • Leírás: Az adatforrás rövid leírása.
    • Gazdagép: Az Azure Cosmos DB-fiók URI-ja. Ezeket az információkat az Azure Cosmos DB-fiók Kulcsok lapján érheti el a Azure Portal.
    • Hozzáférési kulcs: Az azure Cosmos DB-kulcsok lapjának elsődleges vagy másodlagos, írási vagy írásvédett kulcsa a Azure Portal. A legjobb, ha csak olvasható kulcsokat használ, ha a DSN-t írásvédett adatfeldolgozáshoz és jelentéskészítéshez használja.

    A hitelesítési hiba elkerülése érdekében a másolási gombokkal másolja az URI-t és a kulcsot a Azure Portal.

    Képernyőkép az Azure Cosmos DB Kulcsok oldaláról.

    • Hozzáférési kulcs titkosítása a következőhöz: Válassza ki a legjobb választást attól függően, hogy ki használja a gépet.
  9. Válassza a Tesztelés lehetőséget, és győződjön meg arról, hogy tud csatlakozni az Azure Cosmos DB-fiókhoz.

  10. Válassza a Speciális beállítások lehetőséget , és adja meg a következő értékeket:

    • REST API-verzió: Válassza ki a MŰVELETEKHEZ tartozó REST API-verziót . Az alapértelmezett érték 2015-12-16.

      Ha olyan nagyméretű partíciókulcsokkal rendelkező tárolókkal rendelkezik, amelyeknek REST API-verzióra 2018-12-31van szükségük, írja be a parancsot 2018-12-31, majd kövesse az eljárás végén található lépéseket.

    • Lekérdezéskonzisztencia: Válassza ki a műveletek konzisztenciájának szintjét . Az alapértelmezett érték a Munkamenet.

    • Újrapróbálkozások száma: Adja meg, hogy hány alkalommal próbálkozzon újra egy művelettel, ha a kezdeti kérés nem fejeződik be a szolgáltatási sebesség korlátozása miatt.

    • Sémafájl: Ha nem választ ki sémafájlt, az illesztőprogram minden egyes tárolóhoz beolvassa az adatok első oldalát, hogy meghatározza az egyes munkamenetekhez tartozó sémáját, az úgynevezett tárolóleképezést. Ez a folyamat hosszú indítási időt okozhat a DSN-t használó alkalmazások számára. A legjobb, ha sémafájlt társít a DSN-hez.

      • Ha már rendelkezik sémafájllal, válassza a Tallózás lehetőséget, keresse meg a fájlt, válassza a Mentés, majd az OK gombot.

      • Ha még nem rendelkezik sémafájllal, válassza az OK gombot, majd kövesse a következő szakasz lépéseit a sémadefiníció létrehozásához. A séma létrehozása után térjen vissza erre a Speciális beállítások ablakra a sémafájl hozzáadásához.

Miután az OK gombot választotta a DocumentDB ODBC driver DSN telepítőablakának befejezéséhez és bezárásához, az új felhasználói DSN megjelenik az ODBC adatforrás-rendszergazdaablakának Felhasználói DSN lapján.

Képernyőkép az új D S N felhasználóról a User D S N lapon.

A Windows beállításjegyzékének szerkesztése a REST API 2018-12-31-es verziójának támogatásához

Ha olyan nagy partíciókulcsokkal rendelkező tárolókkal rendelkezik, amelyeknek a REST API 2018-12-31-es verziójára van szükségük, az alábbi lépéseket követve frissítse a Windows beállításjegyzékét a verzió támogatásához.

  1. A Windows Start menüjében írja be a regedit parancsot a Beállításszerkesztő megkereséséhez és megnyitásához.

  2. A Beállításszerkesztőben lépjen a Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INIelérési útjára.

  3. Hozzon létre egy új alkulcsot, amelynek neve megegyezik a DSN-ével, például a Contoso-fiók ODBC DSN-jével.

  4. Lépjen az új Contoso-fiók ODBC DSN alkulcsára, és kattintson a jobb gombbal egy új sztringérték hozzáadásához:

    • Érték neve: IgnoreSessionToken

    • Értékadatok: 1

    Képernyőkép a Windows beállításszerkesztő beállításairól.

Sémadefiníció létrehozása

A sémák létrehozásához kétféle mintavételezési módszer használható: tárolóleképezés vagy táblaelválasztó leképezés. A mintavételezési munkamenetek mindkét mintavételezési módszert használhatják, de minden tároló csak az egyik mintavételi módszert használhatja. A használni kívánt módszer az adatok jellemzőitől függ.

  • A tárolóleképezés lekéri az adatokat egy tárolólapon az adatszerkezet meghatározásához, és transzponálta a tárolót egy ODBC-oldalon található táblába. Ez a mintavételezési módszer hatékony és gyors, ha a tárolóban lévő adatok homogének.

  • A táblaelválasztó leképezés robusztusabb mintavételezést biztosít a heterogén adatokhoz. Ez a módszer attribútumok és megfelelő értékek készletére terjed ki a mintavételezésre.

    Ha például egy dokumentum Type (Típus ) tulajdonságot tartalmaz, a mintavételezést ennek a tulajdonságnak az értékeire is kiterjesztheti. A mintavételezés végeredménye a megadott Típus értékekhez tartozó táblák halmaza. Type = Autó egy Autó táblát állít elő, míg a Type = Plane egy Sík táblát.

Séma meghatározásához kövesse az alábbi lépéseket. A táblaelválasztó leképezési módszer esetében további lépéseket kell tennie a séma attribútumainak és értékeinek meghatározásához.

  1. Az ODBC Adatforrás rendszergazdája ablak Felhasználói DSN lapján válassza ki az Azure Cosmos DB felhasználói DSN-nevét, majd válassza a Konfigurálás lehetőséget.

  2. A DocumentDB ODBC-illesztő DSN telepítőablakában válassza a Sémaszerkesztő lehetőséget.

    Képernyőkép a Sémaszerkesztő gombról a D S N telepítőablakában.

  3. A Sémaszerkesztő ablakban válassza az Új létrehozása lehetőséget.

  4. A Séma létrehozása ablak az Azure Cosmos DB-fiók összes gyűjteményét megjeleníti. Jelölje be a mintát venni kívánt tárolók melletti jelölőnégyzeteket.

  5. A tárolóleképezési módszer használatához válassza a Minta lehetőséget.

    A táblaelválasztó leképezés használatához az alábbi lépéseket követve definiálhat attribútumokat és értékeket a minta hatókörének meghatározásához.

    1. A DSN Leképezésdefiníció oszlopában válassza a Szerkesztés lehetőséget.

    2. A Leképezésdefiníció ablakban, a Leképezési módszer területen válassza a Táblahatárolók lehetőséget.

    3. Az Attribútumok mezőbe írja be egy elválasztó tulajdonság nevét a dokumentumban, amelyet a mintavételezés hatókörébe szeretne helyezni, például Város értékre. Nyomja le az Enter billentyűt.

    4. Ha a mintavételezést a megadott attribútum bizonyos értékeire szeretné korlátozni, jelölje ki az attribútumot, majd írjon be egy értéket az Érték mezőbe (például Seattle), és nyomja le az Enter billentyűt. Attribútumokhoz több értéket is hozzáadhat. Csak győződjön meg arról, hogy a megfelelő attribútum van kiválasztva az értékek megadásakor.

    5. Ha végzett az attribútumok és értékek beírásával, válassza az OK gombot.

    6. A Séma létrehozása ablakban válassza a Minta lehetőséget.

  6. A Tervező nézet lapon finomítsa a sémát. A Tervező nézet az adatbázist, a sémát és a táblát jelöli. A táblanézet megjeleníti az oszlopnevekhez társított tulajdonságokat, például az SQL Name és a Source Name (SQL-név) és a Source Name (Forrásnév) elemet.

    Az egyes oszlopok esetében módosíthatja az SQL nevét, az SQL-típust, az SQL-hosszt, a skálázást, a pontosságot és a Nullable értéket .

    Ha ki szeretné zárni az oszlopot a lekérdezés eredményeiből, az Oszlop elrejtése beállítást true (igaz ) értékre állíthatja. Az Oszlop elrejtése = igaz jelölésű oszlopok nem jelennek meg a kijelöléshez és a vetítéshez, bár továbbra is a séma részét képezik. Elrejtheti például az Azure Cosmos DB rendszer összes szükséges tulajdonságát, amelyek _-val kezdődnek. Az azonosító oszlop az egyetlen olyan mező, amelyet nem lehet elrejteni, mert ez az elsődleges kulcs a normalizált sémában.

  7. A séma definiálása után válassza a Fájl>mentése lehetőséget, keresse meg a menteni kívánt könyvtárat, és válassza a Mentés lehetőséget.

  8. Ha ezt a sémát DSN-sel szeretné használni, a DocumentDB ODBC driver DSN setup (DocumentDB ODBC-illesztő DSN-beállítása ) ablakban válassza a Speciális beállítások lehetőséget. Válassza a Sémafájl mezőt, keresse meg a mentett sémát, válassza az OK gombot , majd kattintson ismét az OK gombra . A sémafájl mentése módosítja a DSN-kapcsolatot a séma által definiált adatokra és szerkezetre.

Nézetek létrehozása

A mintavételezési folyamat részeként igény szerint definiálhat és hozhat létre nézeteket a Sémaszerkesztőben . Ezek a nézetek egyenértékűek az SQL-nézetekkel. A nézetek írásvédettek, és hatókört nyújtanak a definiált Azure Cosmos DB SQL-lekérdezés kiválasztására és vetületeire.

Az alábbi lépéseket követve hozzon létre nézetet az adataihoz:

  1. A Sémaszerkesztő ablak Mintanézet lapján jelölje ki a mintát venni kívánt tárolókat, majd válassza a Hozzáadás lehetőséget a Nézetdefiníció oszlopban.

    Képernyőkép a nézet illesztőprogramon belüli létrehozásáról.

  2. A Definíciók megtekintése ablakban válassza az Új lehetőséget. Adja meg a nézet nevét( például EmployeesfromSeattleView), majd válassza az OK gombot.

  3. A Nézet szerkesztése ablakban adjon meg egy Azure Cosmos DB-lekérdezést, például:

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

  4. Válassza az OK lehetőséget.

    Képernyőkép egy lekérdezés hozzáadásáról nézet létrehozásakor.

Tetszőleges számú nézetet hozhat létre. A nézetek definiálása után válassza a Minta lehetőséget az adatok mintavételéhez.

Fontos

A nézetdefiníció lekérdezésszövege nem tartalmazhat sortöréseket. Ellenkező esetben általános hibaüzenet jelenik meg a nézet előnézetének megtekintésekor.

Lekérdezés az SQL Server Management Studio használatával

Miután beállított egy Azure Cosmos DB ODBC-illesztő felhasználói DSN-t, egy társított kiszolgálókapcsolat beállításával lekérdezheti az Azure Cosmos DB-t a SQL Server Management Studio (SSMS) szolgáltatásból.

  1. Telepítse SQL Server Management Studio, és csatlakozzon a kiszolgálóhoz.

  2. Az SSMS-lekérdezésszerkesztőben hozzon létre egy csatolt kiszolgálóobjektumot az adatforráshoz az alábbi parancsok futtatásával. Cserélje le DEMOCOSMOS a elemet a csatolt kiszolgáló nevére és SDS Name az adatforrás nevére.

    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
    

Az új társított kiszolgáló nevének megtekintéséhez frissítse a csatolt kiszolgálók listáját.

Képernyőkép egy csatolt kiszolgálóról az S S M S-ben.

A csatolt adatbázis lekérdezéséhez adjon meg egy SSMS-lekérdezést. Ebben a példában a lekérdezés a nevű tároló customerstáblájából választ:

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

Hajtsa végre a lekérdezést. Az eredményeknek a következő kimenethez hasonlóan kell kinéznie:

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

Adatok megtekintése a Power BI Desktop

A DSN használatával bármilyen ODBC-kompatibilis eszközzel csatlakozhat az Azure Cosmos DB-hez. Ez az eljárás bemutatja, hogyan csatlakozhat Power BI Desktop Power BI-vizualizációk létrehozásához.

  1. A Power BI Desktopban válassza az Adatok lekérése lehetőséget.

    Képernyőkép az Adatok lekérése a Power B I Desktopban.

  2. Az Adatok lekérése ablakban válassza az Egyéb>ODBC, majd a Csatlakozás lehetőséget.

    Képernyőkép az ODBC-adatforrás kiválasztásáról a Power B I Adatok lekérése szolgáltatásban.

  3. Az ODBC-ből ablakban válassza ki a létrehozott DSN-t, majd kattintson az OK gombra.

    Képernyőkép a D S N kiválasztásáról a Power B I Adatok lekérése szolgáltatásban.

  4. Az Adatforrás elérése ODBC-illesztővel ablakban válassza az Alapértelmezett vagy az Egyéni lehetőséget, majd válassza a Csatlakozás lehetőséget.

  5. A Kezelő ablak bal oldali ablaktábláján bontsa ki az adatbázist és a sémát, és válassza ki a táblát. Az eredmények panel a létrehozott sémát használó adatokat tartalmazza.

    Képernyőkép a táblázat kiválasztásáról a Power B I Adatok lekérése szolgáltatásban.

  6. Ha a Power BI desktopban szeretné megjeleníteni az adatokat, jelölje be a tábla neve melletti jelölőnégyzetet, majd válassza a Betöltés lehetőséget.

  7. A Power BI Desktop válassza a képernyő bal oldalán található Adatok lapot az adatok importálásának megerősítéséhez.

  8. Válassza a jelentés lapot a képernyő bal oldalán, válassza az Új vizualizáció lehetőséget a menüszalagon, majd szabja testre a vizualizációt.

Hibaelhárítás

  • Probléma: A csatlakozáskor a következő hibaüzenet jelenik meg:

    [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"}
    

    Megoldás: Győződjön meg arról, hogy a gazdagép és a hozzáférési kulcs Azure Portal kimásolt értékei helyesek, majd próbálkozzon újra.

  • Probléma: Csatolt Azure Cosmos DB-kiszolgáló létrehozásakor a következő hibaüzenet jelenik meg az SSMS-ben:

    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.
    

    Megoldás: A társított Azure Cosmos DB-kiszolgáló nem támogatja a négyrészes elnevezést.

Következő lépések