Korzystanie z programu Apache Sqoop za pomocą platformy Hadoop w usłudze HDInsight
Dowiedz się, jak używać platformy Apache Sqoop w usłudze HDInsight do importowania i eksportowania danych między klastrem usługi HDInsight i usługą Azure SQL Database.
Mimo że usługa Apache Hadoop jest naturalnym wyborem do przetwarzania danych bez struktury i częściowo ustrukturyzowanych, takich jak dzienniki i pliki, może być również konieczne przetwarzanie danych strukturalnych przechowywanych w relacyjnych bazach danych.
Apache Sqoop to narzędzie przeznaczone do przesyłania danych między klastrami Hadoop i relacyjnymi bazami danych. Służy do importowania danych z systemu zarządzania relacyjnymi bazami danych (RDBMS), takiego jak SQL Server, MySQL lub Oracle, do rozproszonego systemu plików Hadoop (HDFS), przekształcania danych w usłudze Hadoop za pomocą technologii MapReduce lub Apache Hive, a następnie eksportowania danych z powrotem do systemu RDBMS. W tym artykule używasz usługi Azure SQL Database dla relacyjnej bazy danych.
Ważne
W tym artykule skonfigurowaliśmy środowisko testowe do przeprowadzania transferu danych. Następnie wybierz metodę transferu danych dla tego środowiska z jednej z metod w sekcji Uruchamianie zadań Sqoop.
W przypadku wersji sqoop obsługiwanych w klastrach usługi HDInsight zobacz Co nowego w wersjach klastra udostępnianych przez usługę HDInsight?
Omówienie scenariusza
Klaster usługi HDInsight zawiera przykładowe dane. Użyj następujących dwóch przykładów:
- Plik dziennika apache
Log4j
, który znajduje się w lokalizacji/example/data/sample.log
. Następujące dzienniki są wyodrębniane z pliku:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
Tabela Programu Hive o nazwie
hivesampletable
, która odwołuje się do pliku danych znajdującego się w lokalizacji/hive/warehouse/hivesampletable
. Tabela zawiera niektóre dane urządzeń przenośnych.Pole Typ danych clientid string czas wykonywania zapytań string rynek string deviceplatform string devicemake string devicemodel string stan string kraj string querydwelltime double sessionid
bigint sessionpagevieworder bigint
W tym artykule użyjesz tych dwóch zestawów danych do testowania importowania i eksportowania narzędzia Sqoop.
Konfigurowanie środowiska testowego
Klaster, baza danych SQL i inne obiekty są tworzone za pośrednictwem witryny Azure Portal przy użyciu szablonu usługi Azure Resource Manager. Szablon można znaleźć w artykule Szablony szybkiego startu platformy Azure. Szablon usługi Resource Manager wywołuje pakiet bacpac w celu wdrożenia schematów tabeli w bazie danych SQL. Jeśli chcesz użyć prywatnego kontenera dla plików bacpac, użyj następujących wartości w szablonie:
"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",
Uwaga
Importowanie przy użyciu szablonu lub witryny Azure Portal obsługuje tylko importowanie pliku BACPAC z usługi Azure Blob Storage.
Wybierz poniższy obraz, aby otworzyć szablon usługi Resource Manager w witrynie Azure Portal.
Wpisz następujące właściwości:
Pole Wartość Subskrypcja Wybierz subskrypcję platformy Azure z listy rozwijanej. Grupa zasobów Wybierz grupę zasobów z listy rozwijanej lub utwórz nową grupę zasobów Lokalizacja Wybierz region z listy rozwijanej. Nazwa klastra Wprowadź nazwę klastra usługi Hadoop. Użyj tylko małych liter. Nazwa użytkownika logowania klastra Zachowaj wstępnie wypełniona wartość admin
.Hasło logowania do klastra Wprowadź hasło. Nazwa użytkownika SSH Zachowaj wstępnie wypełniona wartość sshuser
.Hasło SSH Wprowadź hasło. Logowanie administratora sql Zachowaj wstępnie wypełniona wartość sqluser
.Hasło administratora sql Wprowadź hasło. lokalizacja _artifacts Użyj wartości domyślnej, chyba że chcesz użyć własnego pliku bacpac w innej lokalizacji. token sas lokalizacji _artifacts Pozostaw to pole puste. Nazwa pliku Bacpac Użyj wartości domyślnej, chyba że chcesz użyć własnego pliku bacpac. Lokalizacja Użyj wartości domyślnej. Logiczna nazwa serwera SQL to
<ClusterName>dbserver
. Nazwa bazy danych to<ClusterName>db
. Domyślna nazwa konta magazynu toe6qhezrh2pdqu
.Wybierz pozycję Zgadzam się na powyższe warunki i postanowienia.
Wybierz pozycję Kup. Zostanie wyświetlony nowy kafelek zatytułowany Przesyłanie wdrożenia dla wdrożenia szablonu. Utworzenie klastra i bazy danych SQL trwa około 20 minut.
Uruchamianie zadań Sqoop
Usługa HDInsight może uruchamiać zadania Sqoop przy użyciu różnych metod. Skorzystaj z poniższej tabeli, aby zdecydować, która metoda jest odpowiednia dla Ciebie, a następnie postępuj zgodnie z linkiem do przewodnika.
Użyj tego , jeśli chcesz... | ... interaktywna powłoka | ...przetwarzanie wsadowe | ... z tego systemu operacyjnego klienta |
---|---|---|---|
Protokół SSH | ? | ? | Linux, Unix, macOS X lub Windows |
Zestaw SDK dla platformy .NET usługi Hadoop | ? | Windows (na razie) | |
Azure PowerShell | ? | Windows |
Ograniczenia
- Eksport zbiorczy — w przypadku usługi HDInsight opartej na systemie Linux łącznik Sqoop używany do eksportowania danych do programu Microsoft SQL Server lub usługi SQL Database nie obsługuje obecnie operacji wstawiania zbiorczego.
- Batching — w przypadku usługi HDInsight opartej na systemie Linux podczas korzystania z przełącznika
-batch
podczas wstawiania narzędzie Sqoop wykonuje wiele operacji wstawiania zamiast dzielenia na partie operacji wstawiania.
Następne kroki
Teraz wiesz już, jak używać narzędzia Sqoop. Aby dowiedzieć się więcej, zobacz:
- Korzystanie z programu Apache Hive z usługą HDInsight
- Przekazywanie danych do usługi HDInsight: znajdź inne metody przekazywania danych do usługi HDInsight/Azure Blob Storage.
- Importowanie i eksportowanie danych między narzędziem Apache Hadoop w usłudze HDInsight i usługą SQL Database przy użyciu narzędzia Apache Sqoop