Wyodrębnianie, przekształcanie i ładowanie (ETL) na dużą skalę

Wyodrębnianie, przekształcanie i ładowanie (ETL) to proces, za pomocą którego dane są pobierane z różnych źródeł. Dane są zbierane w standardowej lokalizacji, czyszczone i przetwarzane. Ostatecznie dane są ładowane do magazynu danych, z którego można wykonywać zapytania. Starsza wersja ETL przetwarza importowane dane, czyści je na miejscu, a następnie przechowuje je w relacyjnym aucie danych. Usługa Azure HDInsight oferuje szeroką gamę składników środowiska Apache Hadoop, które obsługują etL na dużą skalę.

Użycie usługi HDInsight w procesie ETL jest sumowane przez ten potok:

HDInsight ETL at scale overview.

W poniższych sekcjach omówiono poszczególne fazy ETL i skojarzone z nimi składniki.

Aranżacja

Orkiestracja obejmuje wszystkie fazy potoku ETL. Zadania ETL w usłudze HDInsight często obejmują kilka różnych produktów działających w połączeniu ze sobą. Na przykład:

  • Możesz użyć programu Apache Hive, aby wyczyścić część danych, a usługa Apache Pig wyczyści inną część.
  • Za pomocą usługi Azure Data Factory możesz załadować dane do usługi Azure SQL Database z usługi Azure Data Lake Store.

Orkiestracja jest wymagana do uruchomienia odpowiedniego zadania w odpowiednim czasie.

Apache Oozie

Apache Oozie to system koordynacji przepływu pracy, który zarządza zadaniami na platformie Hadoop. Oozie działa w klastrze usługi HDInsight i jest zintegrowany ze stosem usługi Hadoop. Usługa Oozie obsługuje zadania hadoop dla usług Apache Hadoop MapReduce, Pig, Hive i Sqoop. Za pomocą usługi Oozie można zaplanować zadania specyficzne dla systemu, takie jak programy Java lub skrypty powłoki.

Aby uzyskać więcej informacji, zobacz Definiowanie i uruchamianie przepływu pracy w usłudze HDInsight przy użyciu rozwiązania Apache Oozie z usługą Apache Hadoop. Zobacz również, Operacjonalizacja potoku danych.

Azure Data Factory

Usługa Azure Data Factory zapewnia możliwości orkiestracji w postaci platformy jako usługi (PaaS). Azure Data Factory to usługa integracji danych w chmurze. Umożliwia tworzenie opartych na danych przepływów pracy do organizowania i automatyzowania przenoszenia danych i przekształcania danych.

Użyj usługi Azure Data Factory, aby:

  1. Tworzenie i planowanie przepływów pracy opartych na danych. Te potoki pozyskują dane z różnych magazynów danych.
  2. Przetwarzanie i przekształcanie danych przy użyciu usług obliczeniowych, takich jak HDInsight lub Hadoop. W tym kroku można również użyć platformy Spark, usługi Azure Data Lake Analytics, usługi Azure Batch lub usługi Azure Machine Edukacja.
  3. Publikowanie danych wyjściowych w magazynach danych, takich jak Usługa Azure Synapse Analytics, w celu korzystania z aplikacji analizy biznesowej.

Aby uzyskać więcej informacji na temat usługi Azure Data Factory, zobacz dokumentację.

Pozyskiwanie magazynu plików i magazynu wyników

Pliki danych źródłowych są zwykle ładowane do lokalizacji w usłudze Azure Storage lub Azure Data Lake Storage. Pliki są zwykle w formacie płaskim, na przykład CSV. Ale mogą być w dowolnym formacie.

Azure Storage

Usługa Azure Storage ma określone cele dotyczące dostosowywania. Aby uzyskać więcej informacji, zobacz Cele skalowalności i wydajności dla usługi Blob Storage . W przypadku większości węzłów analitycznych usługa Azure Storage jest skalowana najlepiej podczas pracy z wieloma mniejszymi plikami. Tak długo, jak jesteś w ramach limitów konta, usługa Azure Storage gwarantuje taką samą wydajność, niezależnie od tego, jak duże są pliki. Możesz przechowywać terabajty danych i nadal uzyskać spójną wydajność. Ta instrukcja jest prawdziwa niezależnie od tego, czy używasz podzestawu, czy wszystkich danych.

Usługa Azure Storage ma kilka typów obiektów blob. Uzupełnialne obiekty blob to świetna opcja przechowywania dzienników internetowych lub danych czujników.

Wiele obiektów blob można dystrybuować na wielu serwerach, aby skalować do nich dostęp w poziomie. Jednak pojedynczy obiekt blob jest obsługiwany tylko przez jeden serwer. Chociaż obiekty blob mogą być logicznie zgrupowane w kontenerach obiektów blob, nie ma żadnych skutków partycjonowania z tego grupowania.

Usługa Azure Storage ma warstwę interfejsu API WebHDFS dla magazynu obiektów blob. Wszystkie usługi HDInsight mogą uzyskiwać dostęp do plików w usłudze Azure Blob Storage na potrzeby czyszczenia danych i przetwarzania danych. Jest to podobne do tego, w jaki sposób te usługi będą korzystać z rozproszonego systemu plików Hadoop (HDFS).

Dane są zwykle pozyskiwane do usługi Azure Storage za pomocą programu PowerShell, zestawu AZURE Storage SDK lub narzędzia AzCopy.

Azure Data Lake Storage

Usługa Azure Data Lake Storage to zarządzane, hiperskala repozytorium danych analitycznych. Jest on zgodny z modelem projektowym, który jest podobny do systemu plików HDFS i używa go. Usługa Data Lake Storage oferuje nieograniczoną możliwość dostosowania całkowitej pojemności i rozmiaru poszczególnych plików. Jest to dobry wybór podczas pracy z dużymi plikami, ponieważ mogą być przechowywane w wielu węzłach. Partycjonowanie danych w usłudze Data Lake Storage odbywa się za kulisami. Usługa zapewnia ogromną przepływność do obsługi zadań analitycznych z tysiącami równorzędnych funkcji wykonawczych, które efektywnie odczytują i zapisują setki terabajtów danych.

Dane są zwykle pozyskiwane do usługi Data Lake Storage za pośrednictwem usługi Azure Data Factory. Możesz również użyć zestawów SDK usługi Data Lake Storage, usługi AdlCopy, narzędzia Apache DistCp lub platformy Apache Sqoop. Wybrana usługa zależy od tego, gdzie są dane. Jeśli znajduje się on w istniejącym klastrze Hadoop, możesz użyć narzędzia Apache DistCp, usługi AdlCopy lub usługi Azure Data Factory. W przypadku danych w usłudze Azure Blob Storage możesz użyć zestawu .NET SDK usługi Azure Data Lake Storage, programu Azure PowerShell lub usługi Azure Data Factory.

Usługa Data Lake Storage jest zoptymalizowana pod kątem pozyskiwania zdarzeń za pośrednictwem usługi Azure Event Hubs.

Zagadnienia dotyczące obu opcji magazynu

W przypadku przekazywania zestawów danych w zakresie terabajtów opóźnienie sieci może być poważnym problemem. Jest to szczególnie istotne, jeśli dane pochodzą z lokalizacji lokalnej. W takich przypadkach można użyć następujących opcji:

  • Azure ExpressRoute: tworzenie połączeń prywatnych między centrami danych platformy Azure i infrastrukturą lokalną. Te połączenia zapewniają niezawodną opcję transferu dużych ilości danych. Aby uzyskać więcej informacji, zobacz dokumentację usługi Azure ExpressRoute.

  • Przekazywanie danych z dysków twardych: możesz użyć usługi Azure Import/Export, aby dostarczać dyski twarde z danymi do centrum danych platformy Azure. Dane są najpierw przekazywane do usługi Azure Blob Storage. Następnie możesz użyć usługi Azure Data Factory lub narzędzia AdlCopy, aby skopiować dane z usługi Azure Blob Storage do usługi Data Lake Storage.

Azure Synapse Analytics

Usługa Azure Synapse Analytics jest odpowiednim wyborem do przechowywania przygotowanych wyników. Za pomocą usługi Azure HDInsight można wykonywać te usługi dla usługi Azure Synapse Analytics.

Usługa Azure Synapse Analytics to magazyn relacyjnej bazy danych zoptymalizowany pod kątem obciążeń analitycznych. Skaluje się na podstawie partycjonowanych tabel. Tabele można podzielić na partycje w wielu węzłach. Węzły są wybierane w momencie tworzenia. Mogą one być skalowane po fakcie, ale jest to aktywny proces, który może wymagać przenoszenia danych. Aby uzyskać więcej informacji, zobacz Zarządzanie obliczeniami w usłudze Azure Synapse Analytics.

Apache HBase

Apache HBase to magazyn kluczy/wartości dostępny w usłudze Azure HDInsight. Jest to baza danych NoSQL typu open source oparta na usłudze Hadoop i modelowana po google BigTable. Baza HBase zapewnia wydajny dostęp losowy i silną spójność dla dużych ilości danych bez struktury i częściowo ustrukturyzowanych.

Ponieważ baza HBase jest bazą danych bez schematu, nie trzeba definiować kolumn i typów danych przed ich użyciem. Dane są przechowywane w wierszach tabeli i są pogrupowane według rodziny kolumn.

Kod typu open source zapewnia skalowanie liniowe, umożliwiając obsługę petabajtów danych na tysiącach węzłów. Baza HBase opiera się na nadmiarowości danych, przetwarzaniu wsadowym i innych funkcjach udostępnianych przez aplikacje rozproszone w środowisku hadoop.

Baza HBase jest dobrym miejscem docelowym dla danych czujników i dzienników na potrzeby przyszłej analizy.

Możliwość adaptacji bazy danych HBase zależy od liczby węzłów w klastrze usługi HDInsight.

Bazy danych Azure SQL Database

Platforma Azure oferuje trzy relacyjne bazy danych PaaS:

Dodaj więcej procesora CPU i pamięci, aby skalować te produkty w górę. Możesz również użyć dysków w warstwie Premium z produktami, aby uzyskać lepszą wydajność we/wy.

Azure Analysis Services

Azure Analysis Services to analityczny aparat danych używany w obsłudze decyzji i analizie biznesowej. Udostępnia ona dane analityczne dla raportów biznesowych i aplikacji klienckich, takich jak power BI. Dane analityczne współdziałają również z raportami programu Excel, raportami usług SQL Server Reporting Services i innymi narzędziami do wizualizacji danych.

Skalowanie modułów analizy przez zmianę warstw dla każdego modułu. Aby uzyskać więcej informacji, zobacz Cennik usług Azure Analysis Services.

Wyodrębnianie i ładowanie

Gdy dane istnieją na platformie Azure, możesz użyć wielu usług, aby wyodrębnić je i załadować do innych produktów. Usługa HDInsight obsługuje platformy Sqoop i flume.

Apache Sqoop

Apache Sqoop to narzędzie przeznaczone do wydajnego przesyłania danych między ustrukturyzowanymi, częściowo ustrukturyzowanymi i nieustrukturyzowanymi źródłami danych.

Narzędzie Sqoop używa usługi MapReduce do importowania i eksportowania danych w celu zapewnienia równoległej operacji i odporności na uszkodzenia.

Apache Flume

Apache Flume to rozproszona, niezawodna i dostępna usługa do wydajnego zbierania, agregowania i przenoszenia dużych ilości danych dziennika. Jego elastyczna architektura jest oparta na przepływach danych przesyłanych strumieniowo. Flume jest niezawodny i odporny na uszkodzenia dzięki mechanizmom niezawodności z możliwością dostosowania. Ma wiele mechanizmów trybu failover i odzyskiwania. Platforma Flume używa prostego rozszerzalnego modelu danych, który umożliwia korzystanie z aplikacji analitycznej online.

Nie można używać rozwiązania Apache Flume z usługą Azure HDInsight. Jednak lokalna instalacja platformy Hadoop może używać rozwiązania Flume do wysyłania danych do usługi Azure Blob Storage lub Azure Data Lake Storage. Aby uzyskać więcej informacji, zobacz Using Apache Flume with HDInsight (Używanie rozwiązania Apache Flume z usługą HDInsight).

Przekształcanie

Gdy dane istnieją w wybranej lokalizacji, należy je wyczyścić, połączyć lub przygotować do określonego wzorca użycia. Hive, Pig i Spark SQL są dobrymi wyborami dla tego rodzaju pracy. Wszystkie są obsługiwane w usłudze HDInsight.

Następne kroki