Udostępnij za pośrednictwem


Używanie sterownika ODBC usługi Azure Cosmos DB do nawiązywania połączenia z narzędziami analizy biznesowej i analizy danych

DOTYCZY: NoSQL

Ten artykuł przeprowadzi Cię przez proces instalowania i używania sterownika ODBC usługi Azure Cosmos DB do tworzenia znormalizowanych tabel i widoków dla danych usługi Azure Cosmos DB. Możesz wykonywać zapytania dotyczące znormalizowanych danych za pomocą zapytań SQL lub importować dane do usługi Power BI lub innego oprogramowania do analizy biznesowej, aby tworzyć raporty i wizualizacje.

Azure Cosmos DB to bez schematu baza danych, która umożliwia szybkie tworzenie aplikacji i umożliwia iterowanie modeli danych bez ograniczeń do ścisłego schematu. Pojedyncza baza danych usługi Azure Cosmos DB może zawierać dokumenty JSON różnych struktur. Aby przeanalizować lub zgłosić te dane, może być konieczne spłaszczenie danych w celu dopasowania ich do schematu.

Sterownik ODBC normalizuje dane usługi Azure Cosmos DB w tabelach i widokach pasujących do potrzeb związanych z analizą danych i raportowaniem. Znormalizowane schematy umożliwiają uzyskiwanie dostępu do danych za pomocą narzędzi zgodnych ze standardem ODBC. Schematy nie mają wpływu na dane bazowe i nie wymagają od deweloperów ich przestrzegania. Sterownik ODBC ułatwia tworzenie baz danych usługi Azure Cosmos DB przydatnych dla analityków danych i zespołów programistycznych.

Operacje SQL można wykonywać względem znormalizowanych tabel i widoków, w tym grupować według zapytań, wstawiać, aktualizować i usuwać. Sterownik jest zgodny ze standardem ODBC 3.8 i obsługuje składnię ANSI SQL-92.

Ważne

Rozważ użycie usługi Azure Synapse Link dla usługi Azure Cosmos DB do tworzenia tabel i widoków dla danych. Usługa Synapse Link ma wyraźne korzyści wydajnościowe dla dużych zestawów danych w porównaniu ze sterownikiem ODBC. Można również połączyć znormalizowane dane usługi Azure Cosmos DB z innymi rozwiązaniami oprogramowania, takimi jak usługi SQL Server Integration Services (SSIS), QlikSense, Tableau i inne oprogramowanie do analizy, analizy biznesowej i narzędzia do integracji danych. Za pomocą tych rozwiązań można analizować, przenosić, przekształcać i tworzyć wizualizacje przy użyciu danych usługi Azure Cosmos DB.

Ważne

  • Nawiązywanie połączenia z usługą Azure Cosmos DB za pomocą sterownika ODBC jest obecnie obsługiwane tylko dla usługi Azure Cosmos DB dla noSQL.
  • Bieżący sterownik ODBC nie obsługuje zagregowanych wypychań i ma znane problemy z niektórymi narzędziami analitycznymi. Do momentu wydania nowej wersji można użyć jednej z następujących alternatyw:
    • Usługa Azure Synapse Link jest preferowanym rozwiązaniem analitycznym dla usługi Azure Cosmos DB. Korzystając z pul bezserwerowych usług Azure Synapse Link i Azure Synapse SQL, możesz użyć dowolnego narzędzia do analizy biznesowej, aby wyodrębnić szczegółowe informacje niemal w czasie rzeczywistym z danych SQL usługi Azure Cosmos DB lub interfejsu API dla bazy danych MongoDB.
    • W przypadku usługi Power BI można użyć łącznika Azure Cosmos DB dla Power BI.
    • Aby uzyskać informacje o usłudze Qlik Sense, zobacz Łączenie usługi Qlik Sense z usługą Azure Cosmos DB.

Instalowanie sterownika ODBC i nawiązywanie połączenia z bazą danych

  1. Pobierz sterowniki dla środowiska:

    Instalator Obsługiwane systemy operacyjne
    Microsoft Azure Cosmos DB ODBC 64-bit.msi dla 64-bitowego systemu Windows 64-bitowe wersje systemu Windows 8.1 lub nowszego, Windows 8, Windows 7. 64-bitowe wersje systemów Windows Server 2012 R2, Windows Server 2012 i Windows Server 2008 R2. Windows 10. Windows Server 2012 R2. Windows Server 2016
    32x64-bit.msi ODBC usługi Microsoft Azure Cosmos DB dla 32-bitowego systemu Windows w wersji 64-bitowej 64-bitowe wersje systemu Windows 8.1 lub nowszego, Windows 8, Windows 7, Windows XP, Windows Vista. 64-bitowe wersje systemów Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 i Windows Server 2003.
    Microsoft Azure Cosmos DB ODBC 32-bit.msi dla 32-bitowego systemu Windows 32-bitowe wersje systemu Windows 8.1 lub nowszego, Windows 8, Windows 7, Windows XP i Windows Vista.
  2. Uruchom lokalnie plik .msi, który uruchamia Kreatora instalacji sterowników ODBC usługi Microsoft Azure Cosmos DB.

  3. Zakończ pracę kreatora instalacji przy użyciu domyślnych danych wejściowych.

  4. Po zainstalowaniu sterownika wpisz źródła danych ODBC w polu wyszukiwania systemu Windows i otwórz administratora źródła danych ODBC.

  5. Upewnij się, że na karcie Sterowniki znajduje się sterownik ODBC usługi Microsoft Azure DocumentDB.

    Zrzut ekranu przedstawiający okno Administrator źródła danych ODBC.

  6. Wybierz kartę DsN użytkownika, a następnie wybierz pozycję Dodaj , aby utworzyć nową nazwę źródła danych (DSN). Można również utworzyć System DSN.

  7. W oknie Tworzenie nowego źródła danych wybierz pozycję Sterownik ODBC usługi Microsoft Azure DocumentDB, a następnie wybierz pozycję Zakończ.

  8. W oknie Konfiguracja DSN sterownika ODBC DocumentDB wprowadź następujące informacje:

    Zrzut ekranu przedstawiający okno konfiguracji serwera nazw domen (DNS).

    • Nazwa źródła danych: przyjazna nazwa ODBC DSN. Ta nazwa jest unikatowa dla tego konta usługi Azure Cosmos DB.
    • Opis: krótki opis źródła danych.
    • Host: identyfikator URI konta usługi Azure Cosmos DB. Te informacje można uzyskać na stronie Klucze na koncie usługi Azure Cosmos DB w witrynie Azure Portal.
    • Klucz dostępu: podstawowy lub pomocniczy klucz odczytu i zapisu lub tylko do odczytu ze strony Klucze usługi Azure Cosmos DB w Azure Portal. Najlepiej używać kluczy tylko do odczytu, jeśli używasz nazwy DSN do przetwarzania i raportowania danych tylko do odczytu.

    Aby uniknąć błędu uwierzytelniania, użyj przycisków kopiowania, aby skopiować identyfikator URI i klucz z witryny Azure Portal.

    Zrzut ekranu przedstawiający stronę Klucze usługi Azure Cosmos DB.

    • Szyfruj klucz dostępu dla: wybierz najlepszy wybór na podstawie tego, kto używa maszyny.
  9. Wybierz pozycję Testuj , aby upewnić się, że możesz nawiązać połączenie z kontem usługi Azure Cosmos DB.

  10. Wybierz pozycję Opcje zaawansowane i ustaw następujące wartości:

    • Wersja interfejsu API REST: wybierz wersję interfejsu API REST dla operacji. Wartość domyślna to 2015-12-16.

      Jeśli masz kontenery z dużymi kluczami partycji, które wymagają wersji 2018-12-31interfejsu API REST, wpisz 2018-12-31, a następnie wykonaj kroki na końcu tej procedury.

    • Spójność zapytań: wybierz poziom spójności dla operacji. Wartość domyślna to Sesja.

    • Liczba ponownych prób: wprowadź liczbę ponownych prób wykonania operacji, jeśli początkowe żądanie nie zostanie ukończone z powodu ograniczania szybkości usługi.

    • Plik schematu: Jeśli nie wybierzesz pliku schematu, sterownik skanuje pierwszą stronę danych każdego kontenera, aby określić jego schemat, co nazywane jest mapowaniem kontenera, dla każdej sesji. Ten proces może spowodować długi czas uruchamiania aplikacji korzystających z nazwy DSN. Najlepiej przypisać plik schematu do DSN.

      • Jeśli masz już plik schematu, wybierz pozycję Przeglądaj, przejdź do pliku, wybierz pozycję Zapisz, a następnie wybierz przycisk OK.

      • Jeśli nie masz jeszcze pliku schematu, wybierz przycisk OK, a następnie wykonaj kroki opisane w następnej sekcji, aby utworzyć definicję schematu. Po utworzeniu schematu wróć do tego okna Opcje zaawansowane, aby dodać plik schematu.

Po wybraniu OK, aby ukończyć i zamknąć okno Konfiguracja DSN sterownika ODBC usługi DocumentDB, nowa nazwa DSN użytkownika pojawi się na karcie DSN użytkownika w oknie Administrator źródła danych ODBC.

Zrzut ekranu przedstawiający nową nazwę użytkownika D N na karcie User D S N.

Edytowanie rejestru systemu Windows w celu obsługi interfejsu API REST w wersji 2018-12-31

Jeśli masz kontenery z dużymi kluczami partycji, które wymagają interfejsu API REST w wersji 2018-12-31, wykonaj następujące kroki, aby zaktualizować rejestr systemu Windows do obsługi tej wersji.

  1. W menu Start systemu Windows wpisz regedit, aby znaleźć i otworzyć Edytor rejestru.

  2. W Edytorze rejestru przejdź do ścieżki Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC. INI.

  3. Utwórz nowy podklucz o takiej samej nazwie jak Twój DSN, na przykład Contoso Account ODBC DSN.

  4. Przejdź do nowego podklucza Contoso Account ODBC DSN, a następnie kliknij prawym przyciskiem myszy, aby dodać nową wartość ciągu:

    • Nazwa wartości: IgnoreSessionToken

    • Dane wartości: 1

    Zrzut ekranu przedstawiający ustawienia Edytora rejestru systemu Windows.

Tworzenie definicji schematu

Istnieją dwa typy metod próbkowania, których można użyć do utworzenia schematu: mapowania kontenera lub mapowania ograniczników tabeli. Sesja próbkowania może używać obu metod próbkowania, ale każdy kontener może używać tylko jednej z metod próbkowania. Która metoda do użycia zależy od cech danych.

  • Mapowanie kontenera pobiera dane na stronie kontenera w celu określenia struktury danych i transponuje kontener do tabeli po stronie ODBC. Ta metoda próbkowania jest wydajna i szybka, gdy dane w kontenerze są homogeniczne.

  • Mapowanie ograniczników tabel zapewnia bardziej niezawodne próbkowanie dla danych heterogenicznych. Ta metoda ogranicza próbkowanie do zestawu atrybutów i odpowiadających im wartości.

    Jeśli na przykład dokument zawiera właściwość Type , możesz określić zakres próbkowania na wartości tej właściwości. Wynikiem końcowym próbkowania jest zestaw tabel dla każdej z określonych wartości typu . Type = Car tworzy tabelę Car, podczas gdy typ = płaszczyzna tworzy tabelę Płaszczyzna.

Aby zdefiniować schemat, wykonaj następujące kroki. W przypadku metody mapowania ograniczników tabeli należy wykonać dodatkowe kroki, aby zdefiniować atrybuty i wartości dla schematu.

  1. Na karcie Nazwa DSN użytkownika w oknie Administrator źródła danych ODBC wybierz nazwę DSN użytkownika usługi Azure Cosmos DB, a następnie wybierz pozycję Konfiguruj.

  2. W oknie Konfiguracja DSN sterownika ODBC DocumentDB wybierz Edytor schematu.

    Zrzut ekranu przedstawiający przycisk Edytor schematu w oknie Konfiguracja usługi D S N.

  3. W oknie Edytor schematu wybierz pozycję Utwórz nowy.

  4. W oknie Generowanie schematu zostaną wyświetlone wszystkie kolekcje na koncie usługi Azure Cosmos DB. Zaznacz pola wyboru obok kontenerów, z których chcesz pobrać próbki.

  5. Aby użyć metody mapowania kontenera, wybierz pozycję Przykład.

    Możesz też użyć mapowania ograniczników tabeli, wykonaj następujące kroki, aby zdefiniować atrybuty i wartości służące do określania zakresu przykładu.

    1. Wybierz Edytuj w kolumnie Definicja mapowania dla DSN.

    2. W oknie Definicja mapowania w obszarze Metoda mapowania wybierz Ograniczniki tabeli.

    3. W polu Atrybuty wpisz nazwę właściwości ogranicznika w dokumencie, do której chcesz ograniczyć zakres próbkowania, na przykład City. Naciśnij klawisz Enter.

    4. Jeśli chcesz ograniczyć zakres próbkowania do określonych wartości wprowadzonego atrybutu, wybierz atrybut, a następnie wprowadź wartość w polu Wartość , na przykład Seattle, i naciśnij Enter. Można dodać wiele wartości dla atrybutów. Upewnij się, że podczas wprowadzania wartości wybrano prawidłowy atrybut.

    5. Po zakończeniu wprowadzania atrybutów i wartości wybierz przycisk OK.

    6. W oknie Generowanie schematu wybierz pozycję Przykład.

  6. Na karcie Design View doprecyzuj swój schemat. Widok projektu reprezentuje bazę danych, schemat i tabelę. Widok tabeli zawiera zestaw właściwości skojarzonych z nazwami kolumn, takich jak nazwa SQL i nazwa źródła.

    Dla każdej kolumny można zmodyfikować nazwę SQL, typ SQL, długość SQL, skalę, precyzję i czy może mieć wartość null, jeżeli to jest potrzebne.

    Możesz ustawić wartość Ukryj kolumnę na true , jeśli chcesz wykluczyć kolumnę z wyników zapytania. Kolumny oznaczone jako Ukryj kolumnę = prawda nie są zwracane do wyboru i projekcji, chociaż nadal pozostają częścią schematu. Można na przykład ukryć wszystkie wymagane właściwości systemu usługi Azure Cosmos DB, które zaczynają się od _. Kolumna id jest jedynym polem, którego nie można ukryć, ponieważ jest to klucz podstawowy w znormalizowanym schemacie.

  7. Po zakończeniu definiowania schematu wybierz Plik>Zapisz, przejdź do katalogu, w którym chcesz zapisać, a następnie wybierz Zapisz.

  8. Aby użyć tego schematu z DSN, w oknie Konfiguracja DSN sterownika ODBC usługi DocumentDB wybierz zaawansowane opcje. Wybierz pole Plik schematu, przejdź do zapisanego schematu, wybierz przycisk OK, a następnie ponownie wybierz przycisk OK. Zapisanie pliku schematu modyfikuje połączenie DSN, ograniczając je do danych i struktury zdefiniowanych przez schemat.

Tworzenie widoków

Opcjonalnie możesz zdefiniować i utworzyć widoki w Edytorze schematów w ramach procesu próbkowania. Te widoki są równoważne widokom SQL. Widoki są tylko do odczytu, a ich zakres ogranicza się do wyborów i projekcji zdefiniowanego zapytania SQL w usłudze Azure Cosmos DB.

Wykonaj następujące kroki, aby utworzyć widok danych:

  1. Na karcie Przykładowy widok okna Edytor schematu wybierz kontenery, które chcesz przykładować, a następnie wybierz pozycję Dodaj w kolumnie Definicja widoku.

    Zrzut ekranu przedstawiający tworzenie widoku w sterowniku.

  2. W oknie Definicje widoku wybierz pozycję Nowy. Wprowadź nazwę widoku, na przykład EmployeesfromSeattleView, a następnie wybierz przycisk OK.

  3. W oknie Edytowanie widoku wprowadź zapytanie usługi Azure Cosmos DB, na przykład:

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

  4. Wybierz przycisk OK.

    Zrzut ekranu przedstawiający dodawanie zapytania podczas tworzenia widoku.

Możesz utworzyć dowolną liczbę widoków. Po zakończeniu definiowania widoków wybierz pozycję Przykład , aby próbkować dane.

Ważne

Tekst zapytania w definicji widoku nie powinien zawierać podziałów wierszy. W przeciwnym razie podczas wyświetlania podglądu widoku zostanie wyświetlony ogólny błąd.

Wykonywanie zapytań za pomocą programu SQL Server Management Studio

Kiedy skonfigurujesz DSN użytkownika sterownika ODBC dla usługi Azure Cosmos DB, możesz zapytania kierować do usługi Azure Cosmos DB z poziomu programu SQL Server Management Studio (SSMS) poprzez skonfigurowanie połączenia z serwerem połączonym.

  1. Zainstaluj program SQL Server Management Studio i połącz się z serwerem.

  2. W edytorze zapytań programu SSMS utwórz obiekt serwera połączonego dla źródła danych, uruchamiając następujące polecenia. Zastąp DEMOCOSMOS nazwą powiązanego serwera i SDS Name nazwą źródła danych.

    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
    

Aby wyświetlić nową nazwę serwera połączonego, odśwież listę serwerów połączonych.

Zrzut ekranu przedstawiający połączony serwer w usłudze S S M S.

Aby wysłać zapytanie do połączonej bazy danych, wprowadź zapytanie programu SSMS. W tym przykładzie zapytanie wybiera z tabeli w kontenerze o nazwie customers:

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

Wykonaj zapytanie. Wyniki powinny wyglądać podobnie do następujących danych wyjściowych:

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

Wyświetlanie danych w programie Power BI Desktop

Za pomocą nazwy DSN możesz nawiązać połączenie z Azure Cosmos DB z użyciem dowolnego narzędzia zgodnego z ODBC. Ta procedura przedstawia sposób nawiązywania połączenia z programem Power BI Desktop w celu utworzenia wizualizacji usługi Power BI.

  1. W programie Power BI Desktop wybierz pozycję Pobierz dane.

    Zrzut ekranu przedstawiający pobieranie danych w programie Power BI Desktop.

  2. W oknie Pobieranie danych wybierz pozycję Inne>ODBC, a następnie wybierz pozycję Połącz.

    Zrzut ekranu przedstawiający wybieranie źródła danych ODBC w usłudze Power BI Get Data.

  3. W oknie ODBC wybierz utworzoną nazwę DSN, a następnie wybierz OK.

    Zrzut ekranu przedstawiający wybieranie usługi D S N w usłudze Power BI Get Data.

  4. W oknie Uzyskiwanie dostępu do źródła danych przy użyciu sterownika ODBC wybierz pozycję Domyślne lub Niestandardowe , a następnie wybierz pozycję Połącz.

  5. W oknie Nawigator w okienku po lewej stronie rozwiń bazę danych i schemat, a następnie wybierz tabelę. Okienko wyników zawiera dane, które używają utworzonego schematu.

    Zrzut ekranu przedstawiający wybieranie tabeli w usłudze Power BI Get Data.

  6. Aby zwizualizować dane w programie Power BI Desktop, zaznacz pole wyboru obok nazwy tabeli, a następnie wybierz pozycję Załaduj.

  7. W programie Power BI Desktop wybierz kartę Dane po lewej stronie ekranu, aby potwierdzić zaimportowanie danych.

  8. Wybierz kartę Raport po lewej stronie ekranu, wybierz pozycję Nowa wizualizacja na wstążce, a następnie dostosuj wizualizację.

Rozwiązywanie problemów

  • Problem: Podczas próby nawiązania połączenia występuje następujący błąd:

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

    Rozwiązanie: upewnij się, że wartości Host i Klucz dostępu skopiowane z witryny Azure Portal są poprawne i spróbuj ponownie.

  • Problem: Podczas próby utworzenia połączonego serwera usługi Azure Cosmos DB w programie SSMS występuje następujący błąd:

    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.
    

    Rozwiązanie: połączony serwer usługi Azure Cosmos DB nie obsługuje czteroczęściowego nazewnictwa.

Następne kroki