Automatyzacja wydajności operacyjnej: Integracja spostrzeżeń AI z Amazon SageMaker z biznesowymi przepływami pracy

Integracja sztucznej inteligencji (AI) w ramach AWS RDS MySQL do cotygodniowego zarządzania terabajtami danych dotyczących lotów obejmuje wykorzystanie rozległego ekosystemu usług AWS w zakresie sztucznej inteligencji i danych. Integracja ta umożliwia zwiększenie możliwości przetwarzania, analizy i przewidywania danych. Proces ten zazwyczaj obejmuje odczytywanie ogromnych ilości danych z jeziora danych, przechowywanie i zarządzanie tymi danymi w AWS RDS MySQL oraz stosowanie sztucznej inteligencji w celu uzyskania wglądu i prognoz. Oto kompleksowe podejście z przykładem w czasie rzeczywistym.

Pozyskiwanie danych z jeziora danych do AWS RDS MySQL

Pozyskiwanie danych z jeziora danych, zazwyczaj przechowywanych w Amazon S3do AWS RDS MySQL obejmuje kilka kroków, w tym konfigurację zadania AWS Glue dla procesów ETL. Ten przykład przedstawia proces tworzenia AWS Glue ETL zadanie przeniesienia terabajtów danych lotu z jeziora danych S3 do instancji AWS RDS MySQL.

Wymagania wstępne

  • Konto AWS: Proszę upewnić się, że mają Państwo aktywne konto AWS.
  • Dane w Amazon S3: Państwa dane lotu powinny być przechowywane w zasobniku S3 w zorganizowany sposób, najlepiej w formatach takich jak CSV, JSON lub Parquet.
  • Wystąpienie AWS RDS MySQL: Proszę skonfigurować instancję AWS RDS z uruchomionym serwerem MySQL. Proszę zanotować nazwę bazy danych, nazwę użytkownika i hasło.

Proszę zdefiniować katalog danych

Przed utworzeniem zadania ETL należy zdefiniować źródło (S3) i cel (RDS MySQL) w AWS Glue Data Catalog.

  • Proszę przejść do konsoli AWS Glue.
  • W sekcji Databases proszę utworzyć nową bazę danych dla S3 data lake i RDS MySQL, jeśli nie została jeszcze zdefiniowana.
  • Proszę użyć opcji Tabele w bazie danych, aby dodać nową tabelę dla danych lotu S3. Proszę określić ścieżkę S3 i wybrać klasyfikator pasujący do formatu danych (np. CSV, JSON).

Tworzenie zadania ETL w AWS Glue

  1. W konsoli AWS Glue proszę przejść do sekcji Jobs i kliknąć Add Job.
  2. Proszę wypełnić właściwości zadania:
    • Imię i nazwisko: Proszę wprowadzić nazwę zadania.
    • Rola IAM: Proszę wybrać lub utworzyć rolę IAM, która ma uprawnienia dostępu do danych S3 i instancji RDS MySQL.
    • Typ: Proszę wybrać “Spark”.
    • Wersja kleju: Proszę wybrać wersję Glue, która obsługuje Państwa format danych.
    • To zadanie zostanie uruchomione: Proszę wybrać “Proponowany skrypt wygenerowany przez AWS Glue”.
    • Skrypt automatycznie wygeneruje skrypt dla Państwa.
    • Źródło danych: Proszę wybrać tabelę S3 z katalogu danych.
    • Cel danych: Proszę wybrać tabelę RDS MySQL z katalogu danych. Proszę wprowadzić szczegóły połączenia RDS.
    • Mapowanie: AWS Glue zasugeruje mapowanie między danymi źródłowymi i docelowymi. Proszę przejrzeć i dostosować mapowania w razie potrzeby, aby dopasować je do schematu tabeli RDS MySQL.

Dostosowanie skryptu ETL (opcjonalnie)

AWS Glue generuje skrypt PySpark na podstawie dokonanych przez Państwa wyborów. Skrypt ten można dostosować do przekształceń lub obsługi złożonych scenariuszy.

import sys

from awsglue.transforms import *

from awsglue.utils import getResolvedOptions

from pyspark.context import SparkContext

from awsglue.context import GlueContext

from awsglue.job import Job

 

## @params: [JOB_NAME]

args = getResolvedOptions(sys.argv, ['JOB_NAME'])

 

sc = SparkContext()

glueContext = GlueContext(sc)

spark = glueContext.spark_session

job = Job(glueContext)

job.init(args['JOB_NAME'], args)

 

## Data source and transformation logic here

 

## Write data back to RDS MySQL

datasink4 = glueContext.write_dynamic_frame.from_jdbc_conf(frame = ApplyMapping_node3, catalog_connection = "YourRDSDatabaseConnection", connection_options = {"dbtable": "your_target_table", "database": "your_database"}, transformation_ctx = "datasink4")

 

job.commit()

Zaplanowanie i uruchomienie zadania ETL

Po skonfigurowaniu zadania ETL można skonfigurować jego uruchamianie zgodnie z harmonogramem (np. co tydzień dla nowych danych lotu) lub uruchomić je ręcznie z poziomu konsoli AWS Glue. Proszę monitorować przebieg zadania w zakładce Historia w szczegółach zadania.

Konfiguracja AWS RDS MySQL dla integracji AI

Konfiguracja AWS RDS MySQL do integracji AI, szczególnie w przypadku scenariuszy obejmujących dane na dużą skalę, takie jak terabajty informacji o lotach, wymaga starannego planowania w zakresie projektowania schematu bazy danych, optymalizacji wydajności i efektywnego pozyskiwania danych. Oto jak można do tego podejść, w tym przykładowy kod do tworzenia tabel i przygotowywania danych do analizy AI przy użyciu usług AWS, takich jak RDS MySQL i integracji z usługami uczenia maszynowego, takimi jak Amazon SageMaker.

Projektowanie schematu bazy danych AWS RDS MySQL

Projektując schemat, proszę rozważyć, w jaki sposób model AI będzie wykorzystywał dane. W przypadku danych lotu mogą być potrzebne tabele dla lotów, samolotów, dzienników konserwacji, warunków pogodowych i informacji o pasażerach.

CREATE TABLE flights (

    flight_id INT AUTO_INCREMENT PRIMARY KEY,

    flight_number VARCHAR(255) NOT NULL,

    departure_airport_code VARCHAR(5),

    arrival_airport_code VARCHAR(5),

    scheduled_departure_time DATETIME,

    scheduled_arrival_time DATETIME,

    status VARCHAR(50),

    -- Additional flight details here

);

 

CREATE TABLE aircraft (

    aircraft_id INT AUTO_INCREMENT PRIMARY KEY,

    model VARCHAR(255) NOT NULL,

    manufacturer VARCHAR(255),

    capacity INT

    -- Additional aircraft details here

);

Tabela dzienników obsługi technicznej

W tabeli tej zapisywane są czynności obsługi technicznej dla każdego statku powietrznego. Zawiera ona informacje na temat rodzaju wykonanej obsługi technicznej, daty i wszelkich uwag związanych z czynnościami obsługi technicznej.

CREATE TABLE maintenance_logs (

    log_id INT AUTO_INCREMENT PRIMARY KEY,

    aircraft_id INT NOT NULL,

    maintenance_date DATE NOT NULL,

    maintenance_type VARCHAR(255),

    notes TEXT,

    -- Ensure there's a foreign key relationship with the aircraft table

    CONSTRAINT fk_aircraft

        FOREIGN KEY (aircraft_id) 

        REFERENCES aircraft (aircraft_id)

        ON DELETE CASCADE

);

Tabela pogody

Tabela pogody przechowuje informacje o warunkach pogodowych na różnych lotniskach w określonym czasie. Dane te mają kluczowe znaczenie dla analizy opóźnień i odwołań lotów oraz optymalizacji tras lotów.

CREATE TABLE weather (

    weather_id INT AUTO_INCREMENT PRIMARY KEY,

    airport_code VARCHAR(5) NOT NULL,

    recorded_time DATETIME NOT NULL,

    temperature DECIMAL(5,2),

    visibility INT,

    wind_speed DECIMAL(5,2),

    precipitation DECIMAL(5,2),

    condition VARCHAR(255),

    -- Additional weather details as needed

    INDEX idx_airport_time (airport_code, recorded_time)

);

Tabela pasażerów

Ta tabela przechowuje informacje o pasażerach każdego lotu. Obejmuje ona dane osobowe i informacje związane z lotem, które mogą być wykorzystane do poprawy komfortu pasażerów poprzez spersonalizowane usługi lub programy lojalnościowe.

CREATE TABLE passengers (

    passenger_id INT AUTO_INCREMENT PRIMARY KEY,

    flight_id INT NOT NULL,

    first_name VARCHAR(255) NOT NULL,

    last_name VARCHAR(255) NOT NULL,

    seat_number VARCHAR(10),

    loyalty_program_id VARCHAR(255),

    special_requests TEXT,

    -- Ensure there's a foreign key relationship with the flights table

    CONSTRAINT fk_flight

        FOREIGN KEY (flight_id) 

        REFERENCES flights (flight_id)

        ON DELETE CASCADE

);

Optymalizacja wydajności dla dużych zbiorów danych

W przypadku integracji sztucznej inteligencji, zwłaszcza w przypadku analizy danych wrażliwych na czas lub prognoz w czasie rzeczywistym, należy upewnić się, że instancja MySQL jest zoptymalizowana. Obejmuje to indeksowanie krytycznych kolumn i rozważenie partycjonowania dużych tabel.

-- Indexing example for quicker lookups

CREATE INDEX idx_flight_number ON flights(flight_number);

CREATE INDEX idx_departure_arrival ON flights(departure_airport_code, arrival_airport_code);

 

-- Consider partitioning large tables by a suitable key, such as date

ALTER TABLE flights PARTITION BY RANGE ( YEAR(scheduled_departure_time) ) (

    PARTITION p2020 VALUES LESS THAN (2021),

    PARTITION p2021 VALUES LESS THAN (2022),

    -- Add more partitions as needed

);

Wdrażanie tabel

Po zdefiniowaniu SQL dla tych tabel, proszę wykonać polecenia w instancji AWS RDS MySQL. Proszę upewnić się, że aircraft_id w maintenance_logs oraz flight_id w pasażerach poprawnie odwołują się do swoich tabel nadrzędnych, aby zachować integralność danych. Tabela pogody, zaprojektowana z INDEX na airport_code i recorded_time, pomaga zoptymalizować zapytania związane z określonymi lotniskami i godzinami – ważne dla zapytań operacyjnych i analitycznych związanych z planowaniem i analizą lotów.

Przygotowanie danych do analizy AI

Aby wykorzystać dane w modelach sztucznej inteligencji w SageMaker, może być konieczne wstępne przetworzenie i zagregowanie danych do formatu, który może być łatwo wykorzystany przez model.

  • AWS Glue for ETL: Proszę użyć AWS Glue, aby przekształcić nieprzetworzone dane lotu w format przyjazny dla uczenia maszynowego. Może to obejmować agregację danych, obsługę brakujących wartości, kodowanie zmiennych kategorialnych itp.
# Pseudocode for an AWS Glue job to prepare data for SageMaker

 

import awsglue.transforms as Transforms

from awsglue.context import GlueContext

 

glueContext = GlueContext(SparkContext.getOrCreate())

 

datasource = glueContext.create_dynamic_frame.from_catalog(

    database="your_database",

    table_name="flights",

    transformation_ctx="datasource"

)

 

# Apply various transformations such as filtering, mapping, joining with other datasets

transformed = datasource.apply_mapping(...).filter(...)

 

# Write the transformed data to an S3 bucket in a format SageMaker can use (e.g., CSV)

glueContext.write_dynamic_frame.from_options(

    frame=transformed,

    connection_type="s3",

    connection_options={"path": "s3://your-bucket/for-sagemaker/"},

    format="csv"

)

Integracja z Amazon SageMaker

Po przygotowaniu i zapisaniu danych w dostępnym formacie można utworzyć model uczenia maszynowego w programie SageMaker w celu analizy danych lotu.

  • Tworzenie notatnika SageMaker: Proszę rozpocząć od utworzenia notatnika Jupyter w programie SageMaker i załadowania zestawu danych z zasobnika S3.
import sagemaker

import boto3

 

s3 = boto3.client('s3')

bucket="your-bucket"

data_key = 'for-sagemaker/your-data.csv'

data_location = f's3://{bucket}/{data_key}'

 

# Load data into a pandas DataFrame, for example

import pandas as pd

 

df = pd.read_csv(data_location)

  • Trening modelu: Proszę użyć wbudowanych algorytmów SageMaker lub przynieść własny model do trenowania na zestawie danych. Proszę postępować zgodnie z dokumentacją konkretnego algorytmu lub frameworka, którego Państwo używają, aby uzyskać szczegółowe informacje na temat trenowania modelu.

Widok i procedury składowane

Tworzenie widoków i procedur składowanych może znacznie poprawić dostępność i zarządzanie danymi w bazie danych AWS RDS MySQL, szczególnie w przypadku złożonych zapytań i operacji związanych z lotami, samolotami, dziennikami konserwacji, pogodą i pasażerami. Poniżej znajduje się przykład, w jaki sposób można utworzyć przydatne widoki i procedury składowane dla tych jednostek.

Tworzenie widoków

Widoki mogą uprościć dostęp do danych dla typowych zapytań, zapewniając wirtualną tabelę opartą na zestawie wyników instrukcji SQL.

Widok szczegółów lotu z warunkami pogodowymi

CREATE VIEW flight_details_with_weather AS

SELECT 

    f.flight_id, 

    f.flight_number, 

    f.departure_airport_code, 

    f.arrival_airport_code, 

    w.condition AS departure_weather_condition,

    w2.condition AS arrival_weather_condition

FROM 

    flights f

JOIN 

    weather w ON (f.departure_airport_code = w.airport_code AND DATE(f.scheduled_departure_time) = DATE(w.recorded_time))

JOIN 

    weather w2 ON (f.arrival_airport_code = w2.airport_code AND DATE(f.scheduled_arrival_time) = DATE(w2.recorded_time));

Ten widok łączy loty z warunkami pogodowymi na lotniskach odlotu i przylotu, zapewniając szybki przegląd do planowania lotu lub analizy.

Widok podsumowania obsługi technicznej statku powietrznego

CREATE VIEW aircraft_maintenance_summary AS

SELECT 

    a.aircraft_id, 

    a.model,

    COUNT(m.log_id) AS maintenance_count,

    MAX(m.maintenance_date) AS last_maintenance_date

FROM 

    aircraft a

LEFT JOIN 

    maintenance_logs m ON a.aircraft_id = m.aircraft_id

GROUP BY 

    a.aircraft_id;

Ten widok zawiera podsumowanie działań konserwacyjnych dla każdego statku powietrznego, w tym całkowitą liczbę działań konserwacyjnych i datę ostatniej konserwacji.

Tworzenie procedur przechowywanych

Procedury składowane umożliwiają hermetyzację zapytań i poleceń SQL w celu wykonywania złożonych operacji. Mogą one być szczególnie przydatne do wstawiania lub aktualizowania danych w wielu tabelach w sposób transakcyjny.

Procedura składowana dodająca nowy lot i jego pasażerów

DELIMITER $$

CREATE PROCEDURE AddFlightAndPassengers(

    IN _flight_number VARCHAR(255),

    IN _departure_code VARCHAR(5),

    IN _arrival_code VARCHAR(5),

    IN _departure_time DATETIME,

    IN _arrival_time DATETIME,

    IN _passengers JSON -- Assume passengers data is passed as a JSON array

)

BEGIN

    DECLARE _flight_id INT;

    

    -- Insert the new flight

    INSERT INTO flights(flight_number, departure_airport_code, arrival_airport_code, scheduled_departure_time, scheduled_arrival_time)

    VALUES (_flight_number, _departure_code, _arrival_code, _departure_time, _arrival_time);

    

    SET _flight_id = LAST_INSERT_ID();

    

    -- Loop through the JSON array of passengers and insert each into the passengers table

    -- Note: This is pseudocode. MySQL 5.7+ supports JSON manipulation functions.

    -- You might need to parse and iterate over the JSON array in your application code or use MySQL 8.0 functions like JSON_TABLE.

    

    CALL AddPassengerForFlight(_flight_id, _passenger_name, _seat_number, _loyalty_program_id, _special_requests);

    

END $$

DELIMITER ;

Pomocnik procedury składowanej dodającej pasażera do lotu

Jest to uproszczony przykład, który można wywołać z aplikacji AddFlightAndPassengers procedury.

DELIMITER $$

CREATE PROCEDURE AddPassengerForFlight(

    IN _flight_id INT,

    IN _name VARCHAR(255),

    IN _seat_number VARCHAR(10),

    IN _loyalty_program_id VARCHAR(255),

    IN _special_requests TEXT

)

BEGIN

    INSERT INTO passengers(flight_id, name, seat_number, loyalty_program_id, special_requests)

    VALUES (_flight_id, _name, _seat_number, _loyalty_program_id, _special_requests);

END $$

DELIMITER ;

Wykorzystanie sztucznej inteligencji do analizy danych i prognozowania

Wykorzystanie sztucznej inteligencji do analizy danych i prognozowania obejmuje kilka etapów, od przygotowania danych po szkolenie modeli i wnioskowanie. Ten przykład ilustruje, jak używać Amazon SageMaker do uczenia maszynowego z danymi przechowywanymi w AWS RDS MySQL, koncentrując się na przewidywaniu opóźnień lotów na podstawie historycznych danych lotu, warunków pogodowych, dzienników konserwacji i informacji o pasażerach.

Przygotowanie danych

Przed uczeniem modelu należy przygotować zestaw danych. Często wiąże się to z zapytaniem do bazy danych RDS MySQL w celu skonsolidowania niezbędnych danych do formatu odpowiedniego dla uczenia maszynowego.

Zakładając, że mają Państwo tabele dla lotów, samolotów, dzienników konserwacji, pogody i pasażerów w AWS RDS MySQL, można utworzyć widok, który agreguje odpowiednie informacje:

CREATE VIEW flight_data_analysis AS

SELECT

    f.flight_number,

    f.scheduled_departure_time,

    f.scheduled_arrival_time,

    w.temperature,

    w.wind_speed,

    w.condition AS weather_condition,

    m.maintenance_type,

    COUNT(p.passenger_id) AS passenger_count,

    f.status AS flight_status -- Assume 'Delayed' or 'On Time'

FROM

    flights f

JOIN weather w ON (f.departure_airport_code = w.airport_code AND DATE(f.scheduled_departure_time) = DATE(w.recorded_time))

LEFT JOIN maintenance_logs m ON f.aircraft_id = m.aircraft_id

LEFT JOIN passengers p ON f.flight_id = p.flight_id

GROUP BY

    f.flight_id;

Widok ten łączy dane lotu z warunkami pogodowymi, typem konserwacji i liczbą pasażerów dla każdego lotu, co można wykorzystać do przewidywania opóźnień lotów.

Eksport danych do S3

Proszę użyć zadania AWS Glue ETL, aby wyodrębnić dane z tego widoku i zapisać je w zasobniku Amazon S3 w formacie, którego może używać Amazon SageMaker, np. CSV:

# Pseudocode for AWS Glue ETL job

glueContext.create_dynamic_frame.from_catalog(

    database = "your-rds-database",

    table_name = "flight_data_analysis",

    transformation_ctx = "datasource"

).toDF().write.format("csv").save("s3://your-bucket/flight-data/")

Trenowanie modelu za pomocą Amazon SageMaker

  • Proszę utworzyć instancję notebooka SageMaker: Proszę otworzyć konsolę SageMaker, utworzyć nową instancję notatnika i otworzyć notatnik Jupyter.
  • Proszę załadować dane: Proszę załadować dane z zasobnika S3 do notatnika:
import sagemaker

import boto3

import pandas as pd

 

# Define S3 bucket and path

bucket="your-bucket"

data_key = 'flight-data/your-data.csv'

data_location = f's3://{bucket}/{data_key}'

 

# Load the dataset

df = pd.read_csv(data_location)

  • Wstępne przetwarzanie danych: W razie potrzeby należy wstępnie przetworzyć dane, w tym obsłużyć brakujące wartości, zakodować zmienne kategorialne i podzielić dane na zestawy treningowe i testowe.
  • Proszę wybrać model i przeprowadzić szkolenie: Dla uproszczenia użyjemy algorytmu XGBoost dostarczonego przez SageMaker:
from sagemaker import get_execution_role

from sagemaker.amazon.amazon_estimator import get_image_uri

 

# Get the XGBoost image

xgboost_container = get_image_uri(boto3.Session().region_name, 'xgboost')

 

# Initialize the SageMaker estimator

xgboost = sagemaker.estimator.Estimator(

    image_uri=xgboost_container,

    role=get_execution_role(),

    train_instance_count=1,

    train_instance_type="ml.m4.xlarge",

    output_path=f's3://{bucket}/output/'

)

 

# Set hyperparameters (simplified for example)

xgboost.set_hyperparameters(

    eta=0.2,

    max_depth=5,

    objective="binary:logistic",

    num_round=100

)

 

# Train the model

xgboost.fit({'train': data_location})

  • Proszę wdrożyć i utworzyć prognozy: Wdrożenie modelu do punktu końcowego i wykorzystanie go do tworzenia prognoz.
predictor = xgboost.deploy(initial_instance_count=1, instance_type="ml.m4.xlarge")

 

# Example prediction (pseudo-code, you'll need to format your input data correctly)

result = predictor.predict(test_data)

Czyszczenie

Proszę pamiętać o usunięciu punktu końcowego SageMaker po użyciu, aby uniknąć niepotrzebnych opłat.

Automatyzacja analizy AI z powrotem do operacji biznesowych

Automatyzacja integracji spostrzeżeń AI z powrotem do operacji biznesowych może znacznie usprawnić podejmowanie decyzji i wydajność operacyjną. Obejmuje to nie tylko generowanie spostrzeżeń za pomocą modeli uczenia maszynowego, ale także płynne włączanie tych spostrzeżeń do biznesowych przepływów pracy. W tym kontekście przeanalizujemy wykorzystanie usług AWS do zautomatyzowania wprowadzania spostrzeżeń AI generowanych z Amazon SageMaker do operacji biznesowych, koncentrując się na scenariuszu, w którym spostrzeżenia są wykorzystywane do optymalizacji operacji lotniczych.

Przegląd scenariusza

Rozważmy linię lotniczą wykorzystującą model uczenia maszynowego hostowany w Amazon SageMaker do przewidywania opóźnień lotów w oparciu o różne czynniki, w tym warunki pogodowe, historię konserwacji samolotów i harmonogramy lotów. Celem jest zautomatyzowanie procesu przekazywania tych prognoz z powrotem do operacyjnego przepływu pracy w celu optymalizacji harmonogramów lotów i planów konserwacji.

Generowanie prognoz za pomocą Amazon Sagemaker

Zakładając, że mają Państwo wdrożony SageMaker który zapewnia prognozy opóźnień, można użyć AWS Lambda do wywołania tego punktu końcowego z wymaganymi danymi i otrzymania prognoz.

Tworzenie funkcji AWS Lambda

  • Język: Python 3.8
  • Uprawnienia: Proszę przypisać rolę z uprawnieniami do wywoływania punktów końcowych SageMaker oraz do odczytu/zapisu do dowolnej wymaganej usługi AWS (np. RDS, S3, SQS).

Wywołanie punktu końcowego SageMaker z Lambda

import boto3

import json

 

def lambda_handler(event, context):

    # Initialize SageMaker runtime client

    sage_client = boto3.client('sagemaker-runtime')

 

    # Specify your SageMaker endpoint name

    endpoint_name = "your-sagemaker-endpoint-name"

    

    # Assuming 'event' contains the input data for prediction

    data = json.loads(json.dumps(event))

    payload = json.dumps(data)

 

    response = sage_client.invoke_endpoint(EndpointName=endpoint_name,

                                            ContentType="application/json",

                                            Body=payload)

                                           

    # Parse the response

    result = json.loads(response['Body'].read().decode())

    

    # Process the result to integrate with business operations

    process_prediction(result)

    

    return {

        'statusCode': 200,

        'body': json.dumps('Prediction processed successfully.')

    }

 

def process_prediction(prediction):

    # Implement how predictions are used in business operations.

    # For example, adjusting flight schedules or maintenance plans.

    # This is a placeholder function.

    pass

Automatyzacja przewidywań

Aby zautomatyzować przewidywania, można uruchomić funkcję Lambda na podstawie różnych zdarzeń. Można na przykład użyć Amazon CloudWatch Events (lub Amazon EventBridge), aby uruchomić funkcję zgodnie z harmonogramem (np. codziennie, aby dostosować harmonogramy lotów na następny dzień) lub uruchomić funkcję w odpowiedzi na określone zdarzenia (np. aktualizacje prognozy pogody).

Integracja prognoz z operacjami biznesowymi

The process_prediction w ramach Lambda jest symbolem zastępczym dla logiki, która integruje prognozy z powrotem do Państwa operacyjnych przepływów pracy. Oto uproszczony przykład tego, jak można dostosować harmonogramy lotów w oparciu o prognozy opóźnień:

def process_prediction(prediction):

    if prediction['delay_probability'] > 0.8:

        # High probability of delay

        # Logic to adjust flight schedule or allocate additional resources

        print("Adjusting flight schedule for high delay probability.")

        # This could involve writing to an RDS database, publishing a message to an SNS topic, etc.

Uwaga: Proszę usunąć wszelkie nieużywane usługi AWS, takie jak Sagemaker i lambda, aby uniknąć niepotrzebnych opłat od AWS.