Importowanie z zapytania Hive
Ważne
Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.
Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).
- Zobacz informacje na temat przenoszenia projektów uczenia maszynowego z programu ML Studio (wersja klasyczna) do Azure Machine Learning.
- Dowiedz się więcej o Azure Machine Learning.
Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.
W tym artykule opisano sposób używania modułu Importuj dane w programie Machine Learning Studio (wersja klasyczna) do pobierania danych z klastrów Hadoop i rozproszonego magazynu usługi HDInsight.
Uwaga
Dotyczy: tylko Machine Learning Studio (wersja klasyczna)
Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.
Importowanie danych z programu Hive jest szczególnie przydatne do ładowania dużych zestawów danych lub jeśli chcesz wstępnie przetworzyć dane przy użyciu zadania MapReduce przed załadowaniem danych do eksperymentu uczenia maszynowego.
Ważne
Od 31 lipca 2018 r. usługa Microsoft Azure HDInsight w wersji 3.3 była ostatnią wersją usługi HDInsight w Windows. Jeśli masz jakiekolwiek klastry usługi HDInsight w wersji Windows 3.3 lub starszej, musisz przeprowadzić migrację do usługi HDInsight w systemie Linux (usługa HDInsight w wersji 3.5 lub nowszej). Aby uzyskać więcej informacji na temat wycofanych wersji usługi HDInsight, zobacz sekcję Wycofane wersje . program Machine Learning Studio (wersja klasyczna) będzie obsługiwać usługę HDInsight w systemie Linux w niektórych scenariuszach.
Obsługa usługi HDInsight w systemie Linux
program Machine Learning Studio (wersja klasyczna) obsługuje usługę HDInsight w systemie Linux w następujących scenariuszach:
- Obiekt blob usługi Hadoop 2.7.3 (HDI 3.6) jako domyślny, pomocnicza usługa ADLS
- Obiekt blob platformy Spark 2.1.0 (HDI 3.6) jako domyślny, pomocnicza usługa ADLS
- Domyślny obiekt blob platformy Spark 2.2.0 (HDI 3.6)
- Domyślny obiekt blob platformy Spark 2.3.0 (HDI 3.6), pomocniczy usług ADLS
Znane problemy
Istnieje kilka znanych problemów z używaniem modułu Importuj dane dla zapytań Hive w usłudze HDInsight w systemie Linux:
- pakiet zabezpieczeń Enterprise nie jest obsługiwany
- /tmp/hive nie można zapisywać
Jak importować dane z zapytań Hive
Korzystanie z kreatora
Moduł zawiera nowego kreatora, który pomaga wybrać opcję magazynu, wybrać spośród istniejących subskrypcji i kont oraz szybko skonfigurować wszystkie opcje.
Dodaj moduł Import Data (Importuj dane ) do eksperymentu. Moduł można znaleźć w obszarze Studio (wersja klasyczna) w kategorii Dane wejściowe i wyjściowe .
Kliknij pozycję Uruchom Kreatora importu danych i postępuj zgodnie z monitami.
Po zakończeniu konfiguracji, aby faktycznie skopiować dane do eksperymentu, kliknij prawym przyciskiem myszy moduł i wybierz polecenie Uruchom wybrane.
Jeśli musisz edytować istniejące połączenie danych, kreator ładuje wszystkie poprzednie szczegóły konfiguracji, aby nie trzeba było ponownie rozpoczynać od podstaw
Ręczne ustawianie właściwości importu
W poniższych krokach opisano sposób ręcznego konfigurowania źródła importu.
Dodaj moduł Import Data (Importuj dane ) do eksperymentu. Moduł można znaleźć w obszarze Studio (wersja klasyczna) w kategorii Dane wejściowe i wyjściowe .
W obszarze Źródło danych wybierz pozycję Zapytanie Programu Hive.
W polu tekstowym zapytanie bazy danych Programu Hive określ dane, które chcesz odczytać przy użyciu języka HiveQL.
HiveQL to język zapytań przypominający SQL, który może być również używany do agregowania danych i filtrowania danych przed dodaniem danych do programu Machine Learning Studio (wersja klasyczna). Jednak zapytanie Hive musi zwracać dane w formacie tabelarycznym.
Na przykład ta instrukcja jest prawidłowym zapytaniem Hive:
SELECT <column list> FROM table WHERE <expression>;
Kliknij pole tekstowe URI serwera HCatalog , a następnie wpisz w pełni kwalifikowaną nazwę klastra.
Jeśli na przykład utworzono klaster o nazwie mycluster001, użyj następującego formatu:
https://mycluster001.azurehdinsight.net
Kliknij pole tekstowe Nazwa konta użytkownika usługi Hadoop i wklej konto użytkownika usługi Hadoop, które zostało użyte podczas aprowizowania klastra.
Kliknij pole tekstowe Hasło konta użytkownika usługi Hadoop i wpisz poświadczenia użyte podczas aprowizowania klastra.
Aby uzyskać więcej informacji na temat nazewnictwa i uwierzytelniania klastra dla usługi Hadoop, zobacz Provision Hadoop clusters in HDInsight (Aprowizowanie klastrów Hadoop w usłudze HDInsight).
W polu Lokalizacja danych wyjściowych wybierz opcję wskazującą miejsce przechowywania danych. Jeśli dane są w rozproszonym systemie plików Hadoop (HDFS), muszą być dostępne za pośrednictwem tego samego konta i hasła, które właśnie wprowadzono. Jeśli dane są na platformie Azure, podaj lokalizację i poświadczenia konta magazynu.
HDFS: wpisz lub wklej identyfikator URI serwera HDFS. Pamiętaj, aby użyć nazwy klastra usługi HDInsight bez prefiksu
HTTPS://
.Azure: w polu Nazwa konta usługi Azure Storage wpisz nazwę konta platformy Azure. Jeśli na przykład pełny adres URL konta magazynu to
https://myshared.blob.core.windows.net
, wpiszmyshared
polecenie .Klucz magazynu platformy Azure: skopiuj i wklej klucz, który jest udostępniany do uzyskiwania dostępu do konta magazynu.
W polu Nazwa kontenera platformy Azure określ domyślny kontener dla klastra. Zobacz sekcję Wskazówki, aby dowiedzieć się, którego kontenera użyć.
Wybierz opcje Użyj buforowanych wyników , jeśli nie oczekujesz, że dane zmienią się zbytnio lub jeśli chcesz uniknąć ponownego ładowania danych przy każdym uruchomieniu eksperymentu.
Po wybraniu tej opcji, jeśli nie ma innych zmian parametrów modułu, eksperyment ładuje dane przy pierwszym uruchomieniu modułu, a następnie używa buforowanej wersji zestawu danych.
Jeśli chcesz ponownie załadować zestaw danych w każdej iteracji zestawu danych eksperymentu, usuń zaznaczenie opcji Użyj buforowanych wyników . Wyniki są również ponownie ładowane, gdy istnieją zmiany parametrów importowanych danych.
Uruchom eksperyment.
Wyniki
Po zakończeniu kliknij wyjściowy zestaw danych i wybierz pozycję Visualize (Wizualizacja ), aby sprawdzić, czy dane zostały zaimportowane pomyślnie.
Jeśli wystąpią błędy, sprawdź dane pod kątem brakujących wartości, dodatkowych pustych kolumn lub niezgodnych typów danych.
Przykłady
Aby zapoznać się z przykładami konfigurowania klastra usługi HDInsight i używania zapytań hive w eksperymentach uczenia maszynowego, zobacz następujące zasoby:
Ten artykuł zawiera szczegółowy przewodnik tworzenia klastra, przekazywania danych i wywoływania danych z programu Studio (klasycznego) przy użyciu programu Hive: Advanced Analytics Process and Technology in Action: Using HDInsight Hadoop clusters (Przetwarzanie i technologia analizy zaawansowanej w działaniu: korzystanie z klastrów hadoop w usłudze HDInsight).
W tym blogu autorstwa MVP Vesa Tikkanen opisano niektóre problemy i obejścia podczas odczytywania bardzo dużych plików (zapytań rozproszonych) z klastra USŁUGI HD w systemie Linux: Czytanie programu Hive usługi HDInsight systemu Linux z usługi Azure ML
Mimo że hive oferuje doskonałe funkcje dla wielu rodzajów czyszczenia i wstępnego przetwarzania danych, po zaimportowaniu można znaleźć te narzędzia przydatne do przygotowywania danych do modelowania:
Użyj modułu Edytuj metadane i inne moduły, aby zmienić nazwy kolumn, określić kolumny zawierające etykiety i funkcje oraz określić typ danych kolumny. Aby zapoznać się z przykładami, zobacz Przetwarzanie zestawu danych.
Przetwarzanie danych tekstowych po przetworzeniu przy użyciu języka Python w celu usunięcia interpunkcji, flagowania części mowy i nie tylko. Aby zapoznać się z przykładami, zobacz Klasyfikacja tekstu.
Łączenie wielu tabel z różnych źródeł w jedną tabelę danych treningowych. Aby zapoznać się z przykładami, zobacz Konserwacja predykcyjna.
Uwagi techniczne
Ta sekcja zawiera szczegóły implementacji, porady i odpowiedzi na często zadawane pytania.
Jak określić domyślny kontener
Jeśli klaster został utworzony przez zaakceptowanie wszystkich wartości domyślnych, kontener o takiej samej nazwie jak klaster został utworzony w tym samym czasie, w którym został utworzony klaster. Ten kontener jest domyślnym kontenerem dla klastra. Jeśli jednak podczas tworzenia klastra wybrano opcję TWORZENIE NIESTANDARDOWE , masz dwie opcje wyboru kontenera domyślnego. Pierwszą opcją jest wybranie istniejącego kontenera. W takim przypadku kontener staje się domyślnym kontenerem magazynu dla klastra. Druga opcja to Create default container (Utwórz domyślny kontener). W przypadku korzystania z tej opcji domyślny kontener ma taką samą nazwę jak klaster.
Jak wywoływać skrypty języka Python z zapytania Hive
Za pomocą modułu Import Data (Importowanie danych ) można uruchamiać zapytania programu Hive wywołujące funkcje UDF języka Python w celu przetwarzania rekordów.
Aby uzyskać więcej informacji, zobacz Use Python with Hive and Pig in HDInsight (Używanie języka Python z usługą Hive i pig w usłudze HDInsight).
Unikanie problemów z brakiem pamięci podczas używania programu Hive do wstępnego przetwarzania danych
W przypadku korzystania z zapytań Hive do wyodrębniania rekordów ze źródeł danych big data czasami domyślna konfiguracja klastra Hadoop jest zbyt ograniczona do obsługi uruchamiania zadania MapReduce. Na przykład w tych informacjach o wersji dla usługi HDInsight domyślne ustawienia są definiowane jako klaster z czterema węzłami.
Jeśli wymagania zadania MapReduce przekraczają dostępną pojemność, zapytania Hive mogą zwrócić komunikat o błędzie Brak pamięci, co powoduje niepowodzenie operacji importowania danych. W takim przypadku można zmienić domyślną alokację pamięci dla zapytań Programu Hive w module Importuj dane , jak pokazano poniżej:
W tym przykładzie polecenia set mapreduce.map.memory.mb
i set mapreduce.reduce.memory.mb
są używane do zwiększenia ilości pamięci, aby użyć maksymalnej dozwolonej w klastrze.
Często zadawane pytania
Jak uniknąć niepotrzebnego ponownego ładowania tych samych danych
Jeśli dane źródłowe zmienią się, możesz odświeżyć zestaw danych i dodać nowe dane, uruchamiając ponownie polecenie Importuj dane. Jeśli jednak nie chcesz ponownie odczytywać ze źródła przy każdym uruchomieniu eksperymentu, wybierz opcję Użyj buforowanych wyników na wartość TRUE. Jeśli ta opcja ma wartość TRUE, moduł sprawdzi, czy eksperyment został wcześniej uruchomiony przy użyciu tego samego źródła i tych samych opcji wejściowych, a jeśli zostanie znaleziony poprzedni przebieg, używane są dane w pamięci podręcznej zamiast ponownie ładować dane ze źródła.
Czy mogę filtrować dane podczas ich odczytywania ze źródła
Sam moduł Importuj dane nie obsługuje filtrowania, ponieważ dane są odczytywane.
Aby filtrować dane przed odczytaniem ich do programu Machine Learning Studio (wersja klasyczna), użyj zapytania programu Hive lub zadania MapReduce w celu agregowania i przekształcania danych.
Istnieje również wiele opcji filtrowania danych po załadowaniu ich do programu Machine Learning Studio (wersja klasyczna):
- Użyj niestandardowego skryptu języka R, aby uzyskać tylko żądane dane.
- Użyj modułu Split Data (Podział danych ) z wyrażeniem względnym lub wyrażeniem regularnym, aby odizolować żądane dane, a następnie zapisać je jako zestaw danych.
Uwaga
Jeśli okaże się, że załadowano więcej danych niż potrzebujesz, możesz zastąpić buforowany zestaw danych, odczytując nowy zestaw danych i zapisując go o tej samej nazwie co starsze, większe dane.
Parametry modułu
Nazwa | Zakres | Typ | Domyślny | Opis |
---|---|---|---|---|
Źródło danych | Lista | Źródło danych lub ujście | Azure Blob Storage | Źródłem danych może być HTTP, FTP, anonimowy protokół HTTPS lub FTPS, plik w usłudze Azure BLOB Storage, tabela platformy Azure, Azure SQL Database, lokalna baza danych SQL Server, tabela programu Hive lub punkt końcowy OData. |
Zapytanie bazy danych Hive | dowolny | Streamreader | Zapytanie HQL | |
Identyfikator URI serwera HCatalog | dowolny | Ciąg | Punkt końcowy Templeton | |
Nazwa konta użytkownika usługi Hadoop | dowolny | Ciąg | Nazwa użytkownika usługi Hadoop HDFS/HDInsight | |
Hasło do konta użytkownika usługi Hadoop | dowolny | Securestring | Hasło hadoop HDFS/HDInsight | |
Lokalizacja danych wyjściowych | dowolny | DataLocation | SYSTEM PLIKÓW HDFS | Określanie systemu plików HDFS lub platformy Azure dla elementu outputDir |
Identyfikator URI serwera HDFS | dowolny | Ciąg | Punkt końcowy rest systemu plików HDFS | |
Nazwa konta usługi Azure Storage | dowolny | Ciąg | Nazwa konta usługi Azure Storage | |
Klucz magazynu platformy Azure | dowolny | Securestring | Klucz magazynu platformy Azure | |
Nazwa kontenera platformy Azure | dowolny | Ciąg | Nazwa kontenera platformy Azure | |
Typ zawartości danych | Lista (podzbiór) | Zawartość adresu URL | OData | Typ formatu danych |
Źródłowy adres URL | dowolny | Ciąg | Adres URL źródła danych Power Query | |
Korzystanie z buforowanych wyników | PRAWDA/FAŁSZ | Wartość logiczna | FALSE | description (opis) |
Dane wyjściowe
Nazwa | Typ | Opis |
---|---|---|
Zestaw danych wyników | Tabela danych | Zestaw danych z pobranymi danymi |
Wyjątki
Wyjątek | Opis |
---|---|
Błąd 0027 | Wyjątek występuje, gdy dwa obiekty muszą mieć ten sam rozmiar, ale nie są. |
Błąd 0003 | Wyjątek występuje, jeśli co najmniej jeden element wejściowy ma wartość null lub jest pusty. |
Błąd 0029 | Wyjątek występuje po przekazaniu nieprawidłowego identyfikatora URI. |
Błąd 0030 | Wyjątek występuje, gdy nie można pobrać pliku. |
Błąd 0002 | Wyjątek występuje, jeśli nie można przeanalizować ani przekonwertować jednego lub większej liczby parametrów z określonego typu na typ wymagany przez metodę docelową. |
Błąd 0009 | Wyjątek występuje, jeśli nazwa konta magazynu platformy Azure lub nazwa kontenera jest niepoprawnie określona. |
Błąd 0048 | Wyjątek występuje, gdy nie można otworzyć pliku. |
Błąd 0015 | Wyjątek występuje, jeśli połączenie z bazą danych nie powiodło się. |
Błąd 0046 | Wyjątek występuje, gdy nie można utworzyć katalogu na określonej ścieżce. |
Błąd 0049 | Wyjątek występuje, gdy nie można przeanalizować pliku. |
Aby uzyskać listę błędów specyficznych dla modułów programu Studio (klasycznych), zobacz Machine Learning Kody błędów.
Aby uzyskać listę wyjątków interfejsu API, zobacz Machine Learning kody błędów interfejsu API REST.
Zobacz też
Importowanie danych
Eksportowanie danych
Importowanie z internetowego adresu URL za pośrednictwem protokołu HTTP
Importowanie z usługi Azure SQL Database
Importowanie z tabeli platformy Azure
Importowanie z Azure Blob Storage
Importowanie z dostawców źródeł danych
Importowanie z lokalnej bazy danych SQL Server