Przygotowuj dane na dużą skalę w Amazon SageMaker Studio za pomocą bezserwerowych interaktywnych sesji AWS Glue PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przygotuj dane na dużą skalę w Amazon SageMaker Studio za pomocą bezserwerowych interaktywnych sesji AWS Glue

Studio Amazon SageMaker to pierwsze w pełni zintegrowane środowisko programistyczne (IDE) do uczenia maszynowego (ML). Zapewnia pojedynczy, internetowy interfejs graficzny, w którym można wykonywać wszystkie etapy opracowywania ML, w tym przygotowywanie danych i budowanie, szkolenie i wdrażanie modeli.

Klej AWS to bezserwerowa usługa integracji danych, która ułatwia wykrywanie, przygotowywanie i łączenie danych na potrzeby analiz, ML i tworzenia aplikacji. AWS Glue umożliwia bezproblemowe zbieranie, przekształcanie, czyszczenie i przygotowywanie danych do przechowywania w jeziorach danych i potokach danych przy użyciu różnych funkcji, w tym wbudowane transformaty.

Inżynierowie danych i analitycy danych mogą teraz interaktywnie przygotowywać dane na dużą skalę, korzystając z wbudowanej integracji swojego notebooka Studio z bezserwerowymi sesjami Spark zarządzanymi przez AWS Glue. Rozpoczęcie w kilka sekund i automatyczne zatrzymanie obliczeń w stanie bezczynności, Sesje interaktywne AWS Glue udostępniać na żądanie, wysoce skalowalne, bezserwerowe zaplecze Spark w celu uzyskania skalowalnego przygotowania danych w programie Studio. Wymierne korzyści z używania sesji interaktywnych AWS Glue na notebookach Studio obejmują:

  • Brak klastrów do dostarczania lub zarządzania
  • Brak bezczynnych klastrów, za które trzeba płacić
  • Nie jest wymagana konfiguracja z góry
  • Brak rywalizacji o zasoby dla tego samego środowiska programistycznego
  • Dokładnie to samo bezserwerowe środowisko wykonawcze i platforma Spark, co zadania ekstrakcji, przekształcania i ładowania (ETL) AWS Glue

W tym poście pokazujemy, jak przygotować dane na dużą skalę w Studio za pomocą bezserwerowych sesji interaktywnych AWS Glue.

Omówienie rozwiązania

Aby wdrożyć to rozwiązanie, wykonaj następujące czynności na wysokim poziomie:

  1. Zaktualizuj swój AWS Zarządzanie tożsamością i dostępem (IAM) uprawnienia roli.
  2. Uruchom jądro sesji interaktywnej AWS Glue.
  3. Skonfiguruj swoją sesję interaktywną.
  4. Dostosuj sesję interaktywną i uruchom skalowalne obciążenie przygotowania danych.

Zaktualizuj swoje uprawnienia roli

Aby rozpocząć, musisz zaktualizować rolę wykonywania uprawnień użytkownika Studio przy użyciu wymaganych uprawnień. Aby uzyskać szczegółowe instrukcje, zobacz Uprawnienia do sesji interaktywnych Glue w SageMaker Studio.

Najpierw dodajesz zarządzane zasady do swojej roli wykonawczej:

  1. W konsoli IAM wybierz role w okienku nawigacji.
  2. Znajdź rolę wykonawczą Studio, której będziesz używać, i wybierz nazwę roli, aby przejść do strony podsumowania roli.
  3. Na Uprawnienia zakładka, na Dodaj uprawnienia menu, wybierz Dołącz zasady.
  4. Wybierz zarządzane zasady AmazonSageMakerFullAccess i AwsGlueSessionUserRestrictedServiceRole
  5. Dodaj Dołącz zasady.
    Strona podsumowania pokazuje nowo dodane zarządzane zasady.Teraz dodajesz niestandardową zasadę i dołączasz ją do swojej roli wykonawczej.
  6. Na Dodaj uprawnienia menu, wybierz Utwórz politykę inline.
  7. Na JSON w zakładce wprowadź następującą politykę:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Zmodyfikuj relację zaufania swojej roli:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Uruchom interaktywne jądro sesji AWS Glue

Jeśli masz już istniejących użytkowników w domenie Studio, być może trzeba ich mieć zamknij i uruchom ponownie serwer Jupyter aby pobrać nowe obrazy jądra notebooka.

Po ponownym załadowaniu możesz utworzyć nowy notatnik Studio i wybierz preferowane jądro. Wbudowany SparkAnalytics 1.0 obraz powinien być teraz dostępny i możesz wybrać preferowane jądro AWS Glue (Klej Scala Spark or Klej PySpark).

Skonfiguruj swoją sesję interaktywną

Możesz łatwo skonfigurować swoją interaktywną sesję AWS Glue z magią komórek notatnika przed inicjalizacją. Magia to małe polecenia z prefiksem % na początku komórek Jupyter, które zapewniają skróty do kontrolowania środowiska. W sesjach interaktywnych AWS Glue magia jest używana do wszystkich potrzeb konfiguracyjnych, w tym:

  • %region – Region AWS, w którym należy zainicjować sesję. Wartość domyślna to region studia.
  • %jam_rola – Rola uprawnień ARN do prowadzenia sesji. Wartość domyślna to rola wykonawcza SageMaker użytkownika.
  • %pracownik_typ - Typ pracownika kleju AWS. Wartość domyślna to standard.
  • %liczba_pracowników – Liczba pracowników przydzielonych podczas uruchamiania zadania. Wartość domyślna to pięć.
  • % idle_timeout – Liczba minut bezczynności, po których sesja wygaśnie. Wartość domyślna to 2,880 minut.
  • %additional_python_modules – Oddzielona przecinkami lista dodatkowych modułów Pythona, które należy uwzględnić w klastrze. Może to być od PyPi lub Usługa Amazon Simple Storage (Amazonka S3).
  • %%konfiguracja – Słownik w formacie JSON składający się z Parametry konfiguracyjne specyficzne dla kleju AWS na sesję.

Aby uzyskać pełną listę konfigurowalnych parametrów magicznych dla tego jądra, użyj %help magia w twoim notatniku.

Twoja sesja interaktywna AWS Glue nie rozpocznie się, dopóki nie zostanie uruchomiona pierwsza niemagiczna komórka.

Dostosuj sesję interaktywną i uruchom zadanie przygotowania danych

Jako przykład, poniższe komórki notatnika pokazują, jak dostosować sesję interaktywną AWS Glue i uruchomić skalowalne obciążenie przygotowania danych. W tym przykładzie wykonujemy zadanie ETL, aby agregować dane o jakości powietrza dla danego miasta, grupując je według godziny dnia.

Konfigurujemy naszą sesję tak, aby zapisywała nasze dzienniki Spark w zasobniku S3 na potrzeby debugowania w czasie rzeczywistym, co zobaczymy w dalszej części tego wpisu. Upewnij się, że iam_role który uruchamia Twoją sesję AWS Glue, ma dostęp do zapisu do określonego zasobnika S3.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

Następnie ładujemy nasz zbiór danych bezpośrednio z Amazon S3. Alternatywnie możesz załaduj dane za pomocą Katalogu danych kleju AWS.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

Na koniec zapisujemy nasz przekształcony zestaw danych w zdefiniowanej przez nas lokalizacji zasobnika wyjściowego:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

Po zakończeniu pracy możesz natychmiast zakończyć sesję interaktywną AWS Glue, po prostu wyłączając jądro notatnika Studio lub możesz użyć %stop_session magia.

Debugowanie i interfejs Spark

W poprzednim przykładzie określiliśmy ”--enable-spark-ui”: “true” kłótnia wraz z "--spark-event-logs-path": location. To konfiguruje naszą sesję AWS Glue do rejestrowania dzienników sesji, dzięki czemu możemy wykorzystać interfejs Spark do monitorowania i debugowania naszego zadania AWS Glue w czasie rzeczywistym.

Aby zapoznać się z procesem uruchamiania i odczytywania tych dzienników Spark, zobacz Uruchomienie serwera historii Spark. Na poniższym zrzucie ekranu uruchomiliśmy lokalny kontener Dockera, który ma uprawnienia do odczytu zasobnika S3 zawierającego nasze logi. Opcjonalnie możesz hostować Elastyczna chmura obliczeniowa Amazon (Amazon EC2) wystąpienie, aby to zrobić, zgodnie z opisem w poprzedniej połączonej dokumentacji.

Przygotowuj dane na dużą skalę w Amazon SageMaker Studio za pomocą bezserwerowych interaktywnych sesji AWS Glue PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Cennik

Gdy korzystasz z sesji interaktywnych AWS Glue w notatnikach Studio, naliczana jest osobna opłata za wykorzystanie zasobów w notatnikach AWS Glue i Studio.

AWS nalicza opłaty za sesje interaktywne AWS Glue na podstawie czasu aktywności sesji i liczby użytych jednostek przetwarzania danych (DPU). Naliczana jest stawka godzinowa za liczbę jednostek DPU używanych do uruchamiania obciążeń, rozliczana w odstępach co 1 sekundę. Sesje interaktywne AWS Glue przypisują domyślnie 5 DPU i wymagają co najmniej 2 DPU. Za każdą sesję interaktywną obowiązuje minimalny czas trwania rozliczenia wynoszący 1 minutę. Aby zobaczyć stawki i przykłady cen AWS Glue lub oszacować swoje koszty za pomocą Kalkulatora Cen AWS, zobacz Ceny kleju AWS.

Notatnik Studio działa na instancji EC2, a opłata za wybrany typ instancji jest naliczana na podstawie czasu użytkowania. Studio przypisuje Ci domyślny typ instancji EC2 ml-t3-medium, gdy wybierzesz SparkAnalytics obraz i powiązane jądro. Możesz zmienić typ wystąpienia swojego notatnika Studio, aby dopasować go do swojego obciążenia. Aby uzyskać informacje o cenach SageMaker Studio, zobacz Cennik Amazon SageMaker.

Wnioski

Natywna integracja notebooków Studio z sesjami interaktywnymi AWS Glue ułatwia bezproblemowe i skalowalne bezserwerowe przygotowywanie danych dla naukowców zajmujących się danymi i inżynierów danych. Zachęcamy do wypróbowania nowej funkcjonalności w Studio!

See Przygotuj dane za pomocą sesji interaktywnych AWS Glue po więcej informacji.


O autorach

Seana MorganaSeana Morgana jest starszym architektem rozwiązań ML w AWS. Ma doświadczenie w dziedzinie półprzewodników i badań akademickich i wykorzystuje swoje doświadczenie, aby pomóc klientom osiągnąć ich cele w AWS. W wolnym czasie Sean jest aktywnym współtwórcą/opiekunem oprogramowania open source i jest liderem specjalnej grupy interesu dla TensorFlow Addons.

Przygotowuj dane na dużą skalę w Amazon SageMaker Studio za pomocą bezserwerowych interaktywnych sesji AWS Glue PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Sumedha Swamy jest głównym menedżerem produktu w Amazon Web Services. Kieruje zespołem SageMaker Studio, aby wbudować go w wybrane środowisko IDE do interaktywnej analizy danych i przepływów pracy w inżynierii danych. Spędził ostatnie 15 lat na budowaniu produktów konsumenckich i korporacyjnych, które mają obsesję na punkcie klientów, korzystając z uczenia maszynowego. W wolnym czasie lubi fotografować niesamowitą geologię amerykańskiego południowego zachodu.

Znak czasu:

Więcej z Uczenie maszynowe AWS