Omówienie różnic między formatami danych U-SQL i Spark

Ważne

Usługa Azure Data Lake Analytics wycofana 29 lutego 2024 r. Dowiedz się więcej z tego ogłoszenia.

Na potrzeby analizy danych organizacja może używać usługi Azure Synapse Analytics lub Microsoft Fabric.

Jeśli chcesz użyć usługi Azure Databricks lub Azure HDInsight Spark, zalecamy przeprowadzenie migracji danych z usługi Azure Data Lake Storage Gen1 do Azure Data Lake Storage Gen2.

Oprócz przenoszenia plików warto również ustawić dane przechowywane w tabelach U-SQL, które są dostępne dla platformy Spark.

Przenoszenie danych przechowywanych w plikach Azure Data Lake Storage Gen1

Dane przechowywane w plikach można przenosić na różne sposoby:

Zalecamy zapoznanie się z artykułem Uaktualnianie rozwiązań do analizy danych big data z usługi Azure Data Lake Storage Gen1 do Azure Data Lake Storage Gen2

Przenoszenie danych przechowywanych w tabelach U-SQL

Tabele U-SQL nie są zrozumiałe dla platformy Spark. Jeśli masz dane przechowywane w tabelach U-SQL, uruchomisz zadanie U-SQL, które wyodrębnia dane tabeli i zapisuje je w formacie zrozumiałym dla platformy Spark. Najbardziej odpowiednim formatem jest utworzenie zestawu plików Parquet zgodnie z układem folderów magazynu metadanych Hive.

Dane wyjściowe można uzyskać w języku U-SQL za pomocą wbudowanego modułu wyjściowego Parquet i dynamicznego partycjonowania danych wyjściowych z zestawami plików w celu utworzenia folderów partycji. Przetwarzanie większej liczby plików niż kiedykolwiek i korzystanie z usługi Parquet stanowi przykład tworzenia takich danych eksploatacyjnych platformy Spark.

Po tej transformacji skopiujesz dane zgodnie z opisem w rozdziale Przenoszenie danych przechowywanych w plikach Azure Data Lake Storage Gen1.

Zastrzeżenia

  • Semantyka danych Podczas kopiowania plików kopia będzie odbywać się na poziomie bajtów. Dlatego te same dane powinny być wyświetlane na koncie Azure Data Lake Storage Gen2. Należy jednak pamiętać, że platforma Spark może interpretować niektóre znaki inaczej. Może na przykład użyć innej wartości domyślnej dla ogranicznika wiersza w pliku CSV. Ponadto, jeśli kopiujesz dane typizowane (z tabel), wówczas Parquet i Spark mogą mieć inną precyzję i skalę dla niektórych typowych wartości (na przykład zmiennoprzecinkowych) i mogą traktować wartości null inaczej. Na przykład język U-SQL ma semantyka języka C# dla wartości null, a platforma Spark ma trzywartą logikę dla wartości null.

  • Tabele U-SQL organizacji danych (partycjonowania) zapewniają dwie partycjonowanie na poziomie. Poziom zewnętrzny (PARTITIONED BY) jest według wartości i jest mapowany głównie do schematu partycjonowania Hive/Spark przy użyciu hierarchii folderów. Należy upewnić się, że wartości null są mapowane na właściwy folder. Poziom wewnętrzny (DISTRIBUTED BY) w języku U-SQL oferuje cztery schematy dystrybucji: działanie okrężne, zakres, skrót i bezpośredni skrót. Tabele hive/Spark obsługują tylko partycjonowanie wartości lub partycjonowanie skrótów przy użyciu innej funkcji skrótu niż U-SQL. W przypadku wyprowadzania danych tabeli U-SQL prawdopodobnie będzie można mapować tylko na partycjonowanie wartości dla platformy Spark i może być konieczne dalsze dostrajanie układu danych w zależności od końcowych zapytań platformy Spark.

Następne kroki