Kõikide tööstusharude organisatsioonidel on analüütiliste kasutusjuhtude jaoks keerukad andmetöötlusnõuded erinevates analüüsisüsteemides, näiteks andmejärved AWS-is, andmelaod (Amazoni punane nihe), otsing (Amazon OpenSearchi teenus), NoSQL (Amazon DynamoDB), masinõpe (Amazon SageMaker), ja veel. Analyticsi spetsialistide ülesandeks on saada väärtust nendesse hajutatud süsteemidesse salvestatud andmetest, et luua oma klientidele paremaid, turvalisemaid ja kuluoptimaalsemaid kasutuskogemusi. Näiteks püüavad digitaalse meedia ettevõtted kombineerida ja töödelda sise- ja välisandmebaasis olevaid andmekogumeid, et luua oma kliendiprofiilidest ühtsed vaated, ergutada ideid uuenduslike funktsioonide loomiseks ja suurendada platvormi kaasatust.
Nendes stsenaariumides kasutavad kliendid, kes otsivad serverita andmeintegratsiooni AWS liim andmete töötlemise ja kataloogimise põhikomponendina. AWS Glue on hästi integreeritud AWS-i teenuste ja partnertoodetega ning pakub madala koodi/koodita ekstraktimise, teisendamise ja laadimise (ETL) valikuid, et võimaldada analüüsi, masinõppe (ML) või rakenduste arendamise töövooge. AWS-i liimi ETL-i tööd võivad olla keerukama konveieri üks komponent. Nende komponentide töö korraldamine ja nende vaheliste sõltuvuste haldamine on andmestrateegia võtmefunktsioon. Amazoni hallatavad töövood Apache Airflowsi jaoks (Amazon MWAA) korraldab andmetorusid, kasutades hajutatud tehnoloogiaid, sealhulgas kohapealseid ressursse, AWS-i teenuseid ja kolmandate osapoolte komponente.
Selles postituses näitame, kuidas lihtsustada Airflow'i korraldatud AWS-liimitöö jälgimist Amazon MWAA uusimate funktsioonide abil.
Ülevaade lahendusest
See postitus käsitleb järgmist:
- Kuidas uuendada Amazon MWAA keskkonda versioonile 2.4.3.
- Kuidas korraldada AWS-liimi tööd Airflow kaudu Suunatud tsükliline graafik (DAG).
- Airflow Amazon pakkuja paketi jälgitavuse täiustused Amazon MWAA-s. Andmekonsoolide tõrkeotsingu lihtsustamiseks saate nüüd koondada AWS Glue'i tööde käitamislogid Airflow konsoolil. Amazon MWAA konsoolist saab üks viide AWS-liimi töökäibe jälgimiseks ja analüüsimiseks. Varem pidid tugimeeskonnad sellele juurde pääsema AWS-i juhtimiskonsool ja tehke selle nähtavuse saavutamiseks käsitsi samme. See funktsioon on vaikimisi saadaval alates Amazon MWAA versioonist 2.4.3.
Järgmine diagramm illustreerib meie lahenduse arhitektuuri.
Eeldused
Teil on vaja järgmisi eeltingimusi:
Seadistage Amazon MWAA keskkond
Keskkonna loomise juhised leiate aadressilt Looge Amazon MWAA keskkond. Olemasolevatel kasutajatel soovitame minna üle versioonile 2.4.3, et kasutada ära selles postituses kirjeldatud jälgitavuse täiustused.
Amazon MWAA versioonile 2.4.3 uuendamise sammud erinevad olenevalt sellest, kas praegune versioon on 1.10.12 või 2.2.2. Selles postituses käsitleme mõlemat võimalust.
Amazon MWAA keskkonna seadistamise eeldused
Peate täitma järgmised eeltingimused:
Uuendage versioonilt 1.10.12 versioonile 2.4.3
Kui kasutate Amazoni MWAA versiooni 1.10.12, viitama Migreerimine uude Amazoni MWAA keskkonda uuendada versioonile 2.4.3.
Uuendage versioonilt 2.0.2 või 2.2.2 versioonile 2.4.3
Kui kasutate Amazon MWAA keskkonna versiooni 2.2.2 või vanemat, toimige järgmiselt.
- Loo nõuded.txt mis tahes kohandatud sõltuvuste jaoks teie DAG-ide jaoks vajalike konkreetsete versioonidega.
- Laadige fail üles Amazon S3-sse sobivas kohas, kus Amazoni MWAA keskkond osutab sõltuvuste installimise nõuetele.txt-le.
- Järgige juhiseid Migreerimine uude Amazoni MWAA keskkonda ja valige versioon 2.4.3.
Värskendage oma DAG-e
Kliendid, kes võtsid uuemale versioonile üle vanema Amazon MWAA keskkonna, võivad vajada olemasolevaid DAG-e värskendama. Airflow versioonis 2.4.3 kasutab Airflow keskkond vaikimisi Amazoni pakkuja paketi versiooni 6.0.0. See pakett võib sisaldada mõningaid potentsiaalselt kahjustavaid muudatusi, näiteks muudatusi operaatorinimedes. Näiteks AWSGlueJobOperator on aegunud ja asendatud Liimitööoperaator. Ühilduvuse säilitamiseks värskendage oma Airflow DAG-e, asendades varasemate versioonide aegunud või toetamata operaatorid uutega. Tehke järgmised sammud.
- Liigu Amazon AWS-i operaatorid.
- Toetatud Airflow operaatorite loendi leidmiseks valige oma Amazon MWAA eksemplari installitud sobiv versioon (vaikimisi 6.0.0).
- Tehke vajalikud muudatused olemasolevas DAG-koodis ja laadige muudetud failid üles DAG-i asukohta Amazon S3-s.
Orkestreerige Airflow'i AWS-liimi töö
See jaotis hõlmab Airflow DAG-ides AWS-liimi töö korraldamise üksikasju. Airflow hõlbustab heterogeensete süsteemide (nt kohapealsed protsessid, välised sõltuvused, muud AWS-teenused ja palju muud) vaheliste sõltuvustega andmekanalite arendamist.
Korraldage CloudTraili logide koondamine AWS Glue'i ja Amazon MWAA abil
Selles näites käsitleme Amazon MWAA kasutamist, et korraldada AWS Glue Python Shelli töö, mis säilitab CloudTraili logidel põhinevaid koondatud mõõdikuid.
CloudTrail võimaldab näha teie AWS-i kontol tehtavaid AWS API-kõnesid. Nende andmete tavapärane kasutusjuhtum on kasutusmõõdikute kogumine teie konto ressursse kasutades auditeerimis- ja regulatiivsete vajaduste jaoks.
Kuna CloudTraili sündmusi logitakse, edastatakse need Amazon S3-s JSON-failidena, mis pole analüütiliste päringute jaoks ideaalsed. Soovime need andmed koondada ja säilitada need Parketi failidena, et võimaldada päringu optimaalset toimivust. Esimese sammuna saame kasutada Athenat andmete esialgse päringu tegemiseks, enne kui teeme oma AWS-liimitöös täiendavaid koondamisi. AWS-i liimiandmete kataloogi tabeli loomise kohta lisateabe saamiseks vaadake CloudTraili logide tabeli loomine Athenas partitsiooniprojektsiooni abil andmeid. Pärast seda, kui oleme Athena kaudu andmeid uurinud ja otsustanud, milliseid mõõdikuid koondtabelites säilitada, saame luua AWS-i liimitöö.
Looge Athenas CloudTraili tabel
Esiteks peame oma andmekataloogis looma tabeli, mis võimaldab CloudTraili andmete kohta Athena kaudu päringuid teha. Järgmine näidispäring loob tabeli, millel on kaks sektsiooni piirkond ja kuupäev (nimetatakse snapshot_date). Asendage kindlasti oma CloudTraili ämbri, AWS-i konto ID ja CloudTraili tabeli nime kohahoidjad:
create external table if not exists `<<<CLOUDTRAIL_TABLE_NAME>>>`( `eventversion` string comment 'from deserializer', `useridentity` struct<type:string,principalid:string,arn:string,accountid:string,invokedby:string,accesskeyid:string,username:string,sessioncontext:struct<attributes:struct<mfaauthenticated:string,creationdate:string>,sessionissuer:struct<type:string,principalid:string,arn:string,accountid:string,username:string>>> comment 'from deserializer', `eventtime` string comment 'from deserializer', `eventsource` string comment 'from deserializer', `eventname` string comment 'from deserializer', `awsregion` string comment 'from deserializer', `sourceipaddress` string comment 'from deserializer', `useragent` string comment 'from deserializer', `errorcode` string comment 'from deserializer', `errormessage` string comment 'from deserializer', `requestparameters` string comment 'from deserializer', `responseelements` string comment 'from deserializer', `additionaleventdata` string comment 'from deserializer', `requestid` string comment 'from deserializer', `eventid` string comment 'from deserializer', `resources` array<struct<arn:string,accountid:string,type:string>> comment 'from deserializer', `eventtype` string comment 'from deserializer', `apiversion` string comment 'from deserializer', `readonly` string comment 'from deserializer', `recipientaccountid` string comment 'from deserializer', `serviceeventdetails` string comment 'from deserializer', `sharedeventid` string comment 'from deserializer', `vpcendpointid` string comment 'from deserializer')
PARTITIONED BY ( `region` string, `snapshot_date` string)
ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://<<<CLOUDTRAIL_BUCKET>>>/AWSLogs/<<<ACCOUNT_ID>>>/CloudTrail/'
TBLPROPERTIES ( 'projection.enabled'='true', 'projection.region.type'='enum', 'projection.region.values'='us-east-2,us-east-1,us-west-1,us-west-2,af-south-1,ap-east-1,ap-south-1,ap-northeast-3,ap-northeast-2,ap-southeast-1,ap-southeast-2,ap-northeast-1,ca-central-1,eu-central-1,eu-west-1,eu-west-2,eu-south-1,eu-west-3,eu-north-1,me-south-1,sa-east-1', 'projection.snapshot_date.format'='yyyy/mm/dd', 'projection.snapshot_date.interval'='1', 'projection.snapshot_date.interval.unit'='days', 'projection.snapshot_date.range'='2020/10/01,now', 'projection.snapshot_date.type'='date', 'storage.location.template'='s3://<<<CLOUDTRAIL_BUCKET>>>/AWSLogs/<<<ACCOUNT_ID>>>/CloudTrail/${region}/${snapshot_date}')
Käivitage eelmine päring Athena konsoolil ja märkige üles tabeli nimi ja AWS-i liimiandmete kataloogi andmebaas, kus see loodi. Kasutame neid väärtusi hiljem Airflow DAG-koodis.
AWS-liimi töökoodi näidis
Järgmine kood on näidis AWS Glue Python Shelli töö mis teeb järgmist:
- Argumendid (mille edastame oma Amazon MWAA DAG-st) selle kohta, millise päeva andmeid töödelda
- Kasutab AWS SDK Pandadele Athena päringu käivitamiseks CloudTraili JSON-andmete esialgseks filtreerimiseks väljaspool AWS Glue'i
- Kasutab Pandasid filtreeritud andmete lihtsate liitmiste tegemiseks
- Väljastab koondandmed tabelisse AWS-i liimiandmete kataloogi
- Kasutab töötlemise ajal logimist, mis on nähtav Amazon MWAA-s
import awswrangler as wr
import pandas as pd
import sys
import logging
from awsglue.utils import getResolvedOptions
from datetime import datetime, timedelta # Logging setup, redirects all logs to stdout
LOGGER = logging.getLogger()
formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s')
streamHandler = logging.StreamHandler(sys.stdout)
streamHandler.setFormatter(formatter)
LOGGER.addHandler(streamHandler)
LOGGER.setLevel(logging.INFO) LOGGER.info(f"Passed Args :: {sys.argv}") sql_query_template = """
select
region,
useridentity.arn,
eventsource,
eventname,
useragent from "{cloudtrail_glue_db}"."{cloudtrail_table}"
where snapshot_date='{process_date}'
and region in ('us-east-1','us-east-2') """ required_args = ['CLOUDTRAIL_GLUE_DB', 'CLOUDTRAIL_TABLE', 'TARGET_BUCKET', 'TARGET_DB', 'TARGET_TABLE', 'ACCOUNT_ID']
arg_keys = [*required_args, 'PROCESS_DATE'] if '--PROCESS_DATE' in sys.argv else required_args
JOB_ARGS = getResolvedOptions ( sys.argv, arg_keys) LOGGER.info(f"Parsed Args :: {JOB_ARGS}") # if process date was not passed as an argument, process yesterday's data
process_date = ( JOB_ARGS['PROCESS_DATE'] if JOB_ARGS.get('PROCESS_DATE','NONE') != "NONE" else (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d") ) LOGGER.info(f"Taking snapshot for :: {process_date}") RAW_CLOUDTRAIL_DB = JOB_ARGS['CLOUDTRAIL_GLUE_DB']
RAW_CLOUDTRAIL_TABLE = JOB_ARGS['CLOUDTRAIL_TABLE']
TARGET_BUCKET = JOB_ARGS['TARGET_BUCKET']
TARGET_DB = JOB_ARGS['TARGET_DB']
TARGET_TABLE = JOB_ARGS['TARGET_TABLE']
ACCOUNT_ID = JOB_ARGS['ACCOUNT_ID'] final_query = sql_query_template.format( process_date=process_date.replace("-","/"), cloudtrail_glue_db=RAW_CLOUDTRAIL_DB, cloudtrail_table=RAW_CLOUDTRAIL_TABLE
) LOGGER.info(f"Running Query :: {final_query}") raw_cloudtrail_df = wr.athena.read_sql_query( sql=final_query, database=RAW_CLOUDTRAIL_DB, ctas_approach=False, s3_output=f"s3://{TARGET_BUCKET}/athena-results",
) raw_cloudtrail_df['ct']=1 agg_df = raw_cloudtrail_df.groupby(['arn','region','eventsource','eventname','useragent'],as_index=False).agg({'ct':'sum'})
agg_df['snapshot_date']=process_date LOGGER.info(agg_df.info(verbose=True)) upload_path = f"s3://{TARGET_BUCKET}/{TARGET_DB}/{TARGET_TABLE}" if not agg_df.empty: LOGGER.info(f"Upload to {upload_path}") try: response = wr.s3.to_parquet( df=agg_df, path=upload_path, dataset=True, database=TARGET_DB, table=TARGET_TABLE, mode="overwrite_partitions", schema_evolution=True, partition_cols=["snapshot_date"], compression="snappy", index=False ) LOGGER.info(response) except Exception as exc: LOGGER.error("Uploading to S3 failed") LOGGER.exception(exc) raise exc
else: LOGGER.info(f"Dataframe was empty, nothing to upload to {upload_path}")
Selle AWS-liimi töö peamised eelised on järgmised:
- Kasutame Athena päringut, et tagada esialgne filtreerimine väljaspool meie AWS-liimitööd. Sellisena piisab suure CloudTraili andmestiku koondamiseks Python Shelli tööst, mille arvutus on minimaalne.
- Me tagame analüütika teegi seadistuse valik on meie AWS-liimitöö loomisel sisse lülitatud, et kasutada Pandase teegi jaoks mõeldud AWS-i SDK-d.
Looge AWS-liimi töö
AWS-i liimitöö loomiseks toimige järgmiselt.
- Kopeerige eelmises jaotises olev skript ja salvestage see kohalikku faili. Selle postituse jaoks nimetatakse faili
script.py
. - Valige AWS Glue konsoolil ETL töökohad navigeerimispaanil.
- Looge uus töö ja valige Python Shelli skriptiredaktor.
- valima Laadige üles ja muutke olemasolevat skripti ja laadige kohapeal salvestatud fail üles.
- Vali Looma.
- Kohta Töö üksikasjad sisestage oma AWS-liimitöö nimi.
- eest IAM roll, valige olemasolev roll või looge uus roll, millel on Amazon S3, AWS Glue ja Athena jaoks vajalikud õigused. Roll peab küsima varem loodud CloudTraili tabelit ja kirjutama väljundi asukohta.
Võite kasutada järgmist näidispoliitika koodi. Asendage kohahoidjad oma CloudTraili logide ämbri, väljundtabeli nime, väljundi AWS Glue andmebaasi, väljundi S3 ämbri, CloudTraili tabeli nime, CloudTraili tabelit sisaldava AWS Glue andmebaasi ja oma AWS-i konto ID-ga.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:List*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::<<<CLOUDTRAIL_LOGS_BUCKET>>>/*", "arn:aws:s3:::<<<CLOUDTRAIL_LOGS_BUCKET>>>*" ], "Effect": "Allow", "Sid": "GetS3CloudtrailData" }, { "Action": [ "glue:Get*", "glue:BatchGet*" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:database/<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:table/<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>/<<<CLOUDTRAIL_TABLE>>>*" ], "Effect": "Allow", "Sid": "GetGlueCatalogCloudtrailData" }, { "Action": [ "s3:PutObject*", "s3:Abort*", "s3:DeleteObject*", "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:Head*" ], "Resource": [ "arn:aws:s3:::<<<OUTPUT_S3_BUCKET>>>", "arn:aws:s3:::<<<OUTPUT_S3_BUCKET>>>/<<<OUTPUT_GLUE_DB>>>/<<<OUTPUT_TABLE_NAME>>>/*" ], "Effect": "Allow", "Sid": "WriteOutputToS3" }, { "Action": [ "glue:CreateTable", "glue:CreatePartition", "glue:UpdatePartition", "glue:UpdateTable", "glue:DeleteTable", "glue:DeletePartition", "glue:BatchCreatePartition", "glue:BatchDeletePartition", "glue:Get*", "glue:BatchGet*" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:database/<<<OUTPUT_GLUE_DB>>>", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:table/<<<OUTPUT_GLUE_DB>>>/<<<OUTPUT_TABLE_NAME>>>*" ], "Effect": "Allow", "Sid": "AllowOutputToGlue" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:/aws-glue/*", "Effect": "Allow", "Sid": "LogsAccess" }, { "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*" ], "Resource": [ "arn:aws:s3:::<<<ATHENA_RESULTS_BUCKET>>>", "arn:aws:s3:::<<<ATHENA_RESULTS_BUCKET>>>/*" ], "Effect": "Allow", "Sid": "AccessToAthenaResults" }, { "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetDataCatalog", "athena:GetQueryResults", "athena:GetQueryExecution" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:athena:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:datacatalog/AwsDataCatalog", "arn:aws:athena:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:workgroup/primary" ], "Effect": "Allow", "Sid": "AllowAthenaQuerying" } ]
}
eest Pythoni versioon, vali Python 3.9.
- valima Laadige tavalised analüüsiteegid.
- eest Andmetöötlusüksused, vali 1 DPU.
- Jätke muud valikud vaikevalikuks või kohandage neid vastavalt vajadusele.
- Vali Säästa töö konfiguratsiooni salvestamiseks.
Konfigureerige Amazon MWAA DAG AWS-liimitöö juhtimiseks
Järgmine kood on mõeldud DAG-ile, mis suudab korraldada meie loodud AWS-liimitööd. Kasutame selle DAG-i järgmisi põhifunktsioone:
"""Sample DAG"""
import airflow.utils
from airflow.providers.amazon.aws.operators.glue import GlueJobOperator
from airflow import DAG
from datetime import timedelta
import airflow.utils # allow backfills via DAG run parameters
process_date = '{{ dag_run.conf.get("process_date") if dag_run.conf.get("process_date") else "NONE" }}' dag = DAG( dag_id = "CLOUDTRAIL_LOGS_PROCESSING", default_args = { 'depends_on_past':False, 'start_date':airflow.utils.dates.days_ago(0), 'retries':1, 'retry_delay':timedelta(minutes=5), 'catchup': False }, schedule_interval = None, # None for unscheduled or a cron expression - E.G. "00 12 * * 2" - at 12noon Tuesday dagrun_timeout = timedelta(minutes=30), max_active_runs = 1, max_active_tasks = 1 # since there is only one task in our DAG
) ## Log ingest. Assumes Glue Job is already created
glue_ingestion_job = GlueJobOperator( task_id="<<<some-task-id>>>", job_name="<<<GLUE_JOB_NAME>>>", script_args={ "--ACCOUNT_ID":"<<<YOUR_AWS_ACCT_ID>>>", "--CLOUDTRAIL_GLUE_DB":"<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>", "--CLOUDTRAIL_TABLE":"<<<CLOUDTRAIL_TABLE>>>", "--TARGET_BUCKET": "<<<OUTPUT_S3_BUCKET>>>", "--TARGET_DB": "<<<OUTPUT_GLUE_DB>>>", # should already exist "--TARGET_TABLE": "<<<OUTPUT_TABLE_NAME>>>", "--PROCESS_DATE": process_date }, region_name="us-east-1", dag=dag, verbose=True
) glue_ingestion_job
Suurendage Amazon MWAA AWS-liimitööde jälgitavust
AWS-i liimitööd kirjutavad logisid Amazon CloudWatch. Tänu Airflow Amazoni pakkujapaketi hiljutistele vaadeldavuse täiustustele on need logid nüüd integreeritud Airflow ülesannete logidega. See konsolideerimine annab Airflow kasutajatele täieliku nähtavuse otse Airflow kasutajaliideses, välistades vajaduse otsida CloudWatchis või AWS Glue konsoolis.
Selle funktsiooni kasutamiseks veenduge, et Amazon MWAA keskkonnaga seotud IAM-i rollil on järgmised õigused vajalike logide toomiseks ja kirjutamiseks.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:GetLogEvents", "logs:GetLogRecord", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogGroupFields", "logs:GetQueryResults", ], "Resource": [ "arn:aws:logs:*:*:log-group:airflow-243-<<<Your environment name>>>-*"--Your Amazon MWAA Log Stream Name ] } ]
}
Kui verbose=true, kuvatakse AWS-liimi töökäitamise logid Airflow ülesannete logides. Vaikimisi on vale. Lisateabe saamiseks vaadake parameetrid.
Kui see on lubatud, loevad DAG-id AWS-i liimitöö CloudWatchi logivoost ja edastavad need Airflow DAG AWS-i liimitöö sammude logidele. See annab üksikasjaliku ülevaate AWS-i liimitööst reaalajas DAG-logide kaudu. Pange tähele, et AWS-i liimitööd loovad väljundi ja vea CloudWatchi logirühma, mis põhineb vastavalt töö STDOUT ja STDERR. Kõik väljundlogirühma logid ja vealogirühma erandite või vea logid edastatakse Amazon MWAA-sse.
AWS-i administraatorid saavad nüüd piirata tugimeeskonna juurdepääsu ainult Airflow-le, muutes Amazon MWAA-st töökorralduse ja töötervishoiu haldamise ühe klaasi. Varem pidid kasutajad kontrollima AWS-liimi töö olekut Airflow DAG-i etappides ja hankima töökäibe identifikaatori. Seejärel pidid nad pääsema juurde AWS Glue'i konsoolile, et leida töö käitamise ajalugu, otsida huvipakkuvat tööd identifikaatori abil ja lõpuks navigeerida töö CloudWatchi logidesse, et tõrkeotsingut teha.
Looge DAG
DAG-i loomiseks toimige järgmiselt.
- Salvestage eelnev DAG-kood kohalikku .py-faili, asendades näidatud kohahoidjad.
Teie AWS-i konto ID, AWS-liimi töö nime, CloudTraili tabeliga AWS-liimi andmebaasi ja CloudTraili tabeli nime väärtused peaksid olema juba teada. Saate kohandada väljund S3 ämbrit, väljund AWS Glue andmebaasi ja väljundtabeli nime vastavalt vajadusele, kuid veenduge, et varem kasutatud AWS Glue töö IAM-i roll oleks vastavalt konfigureeritud.
- Navigeerige Amazon MWAA konsoolis oma keskkonda, et näha, kus DAG-kood on salvestatud.
DAG-kaust on eesliide S3 ämbris, kuhu teie DAG-fail tuleks paigutada.
- Laadige oma muudetud fail sinna üles.
- Avage Amazon MWAA konsool, et kontrollida, kas DAG on tabelis kuvatud.
Käivitage DAG
DAG-i käivitamiseks toimige järgmiselt.
- Valige järgmiste valikute hulgast:
- Käivitage DAG – See põhjustab eilsete andmete kasutamist töödeldavate andmetena
- Käivitage DAG w/ config – Selle valikuga saate sisestada teistsuguse kuupäeva, potentsiaalselt tagasitäidete jaoks, mis hangitakse kasutades
dag_run.conf
DAG-koodis ja edastati seejärel parameetrina AWS-liimitööle
Järgmine ekraanipilt näitab täiendavaid konfiguratsioonisuvandeid, kui soovite Käivitage DAG w/ config.
- Jälgige DAG-i selle töötamise ajal.
- Kui DAG on lõpetatud, avage jooksu üksikasjad.
Paremal paanil saate vaadata logisid või valida Ülesandejuhtumi üksikasjad täieliku ülevaate saamiseks.
- Vaadake Amazon MWAA AWS Glue'i töö väljundloge ilma AWS Glue konsooli kasutamata tänu
GlueJobOperator
paljusõnaline lipp.
AWS-liimitööl kirjutatakse tulemused teie määratud väljundtabelisse.
- Selle õnnestumise kinnitamiseks küsige seda tabelit Athena kaudu.
kokkuvõte
Amazon MWAA pakub nüüd ühte kohta AWS-liimi töö oleku jälgimiseks ja võimaldab teil kasutada Airflow konsooli töökorralduse ja tervisehalduse jaoks ühe klaasina. Selles postituses vaatasime läbi sammud AWS-i liimitööde korraldamiseks Airflow abil GlueJobOperator
. Uute vaadeldavuse täiustuste abil saate AWS-i liimitöödel sujuvalt tõrkeotsingut kasutada ühtses kasutuskogemuses. Samuti näitasime, kuidas uuendada oma Amazon MWAA keskkonda ühilduvale versioonile, värskendada sõltuvusi ja muuta vastavalt IAM-i rollipoliitikat.
Lisateavet levinumate tõrkeotsingu sammude kohta leiate aadressilt Tõrkeotsing: Amazon MWAA keskkonna loomine ja värskendamine. Amazon MWAA keskkonda migreerumise üksikasjaliku teabe saamiseks vaadake Uuendamine 1.10-lt 2-le. Lisateavet avatud lähtekoodiga koodimuudatuste kohta, mis suurendavad AWS-liimitööde jälgitavust Airflow Amazoni pakkujapaketis, vaadake relee logid AWS-i liimitöödest.
Lõpuks soovitame külastada AWS Big Data ajaveeb muu AWS-i analüüsi, ML-i ja andmete haldamise alaste materjalide jaoks.
Autoritest
Rushabh Lokhande on andme- ja ML-insener, kellel on AWS Professional Services Analyticsi praktika. Ta aitab klientidel rakendada suurandmete, masinõppe ja analüüsilahendusi. Väljaspool tööd meeldib talle perega aega veeta, lugeda, joosta ja golfi mängida.
Ryan Gomes on andme- ja ML-insener, kellel on AWS Professional Services Analyticsi praktika. Ta on kirglik aidata klientidel saavutada pilves analüütika ja masinõppelahenduste kaudu paremaid tulemusi. Väljaspool tööd meeldib talle treenida, süüa teha ning sõprade ja perega kvaliteetaega veeta.
Vishwa Gupta on vanemandmearhitekt, kellel on AWS Professional Services Analyticsi praktika. Ta aitab klientidel rakendada suurandmete ja analüüsilahendusi. Väljaspool tööd meeldib talle perega aega veeta, reisida ja uusi toite proovida.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoAiStream. Web3 andmete luure. Täiustatud teadmised. Juurdepääs siia.
- Tuleviku rahapaja Adryenn Ashley. Juurdepääs siia.
- Ostke ja müüge IPO-eelsete ettevõtete aktsiaid koos PREIPO®-ga. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/big-data/simplify-aws-glue-job-orchestration-and-monitoring-with-amazon-mwaa/
- :on
- :on
- :mitte
- : kus
- $ UP
- 1
- 10
- 100
- 12
- 8
- a
- MEIST
- juurdepääs
- vastavalt
- konto
- Saavutada
- üle
- tegevus
- atsükliline
- Täiendavad lisad
- ADEelis
- eelised
- pärast
- koondamine
- Materjal: BPA ja flataatide vaba plastik
- võimaldama
- võimaldab
- juba
- Ka
- Amazon
- Amazon Web Services
- an
- Analüütiline
- analytics
- analüüsima
- ja
- mistahes
- Apache
- API
- taotlus
- Sovelluskehitys
- asjakohane
- arhitektuur
- OLEME
- argument
- argumendid
- AS
- At
- atribuudid
- auditeerimine
- saadaval
- AWS
- AWS liim
- AWS-i professionaalsed teenused
- põhineb
- BE
- muutub
- olnud
- enne
- on
- Parem
- vahel
- Suur
- Big andmed
- mõlemad
- Purustamine
- ehitama
- kuid
- by
- kutsutud
- Kutsub
- CAN
- juhul
- juhtudel
- kataloog
- põhjuste
- muutma
- Vaidluste lahendamine
- kontrollima
- Vali
- Cloud
- kood
- COM
- ühendama
- kommentaar
- ühine
- Ettevõtted
- ühilduvus
- kokkusobiv
- täitma
- keeruline
- komponent
- komponendid
- Arvutama
- konfiguratsioon
- Kinnitama
- konsool
- Konsolideerida
- konsolideerimine
- cooking
- tuum
- kaaned
- looma
- loodud
- loob
- loomine
- Praegune
- tava
- klient
- Kliendid
- DAG
- andmed
- andmete integreerimine
- andmetöötlus
- andmestrateegia
- andmelaod
- andmebaas
- andmebaasid
- andmekogumid
- kuupäev
- Kuupäevad
- kuupäev Kellaaeg
- Päeva
- otsustatud
- vaikimisi
- esitatud
- Näidatud
- Olenevalt
- vananenud
- üksikasjalik
- detailid
- & Tarkvaraarendus
- erinevad
- erinev
- digitaalne
- Digitaalne meedia
- otse
- arutama
- jagatud
- hajutatud süsteemid
- do
- ei
- teeme
- tehtud
- ajal
- e
- Ajalugu
- Lihtne
- mõju
- kõrvaldades
- teine
- võimaldama
- lubatud
- võimaldab
- Lõpuks-lõpuni
- tegevus
- insener
- lisaseadmed
- tagama
- sisene
- keskkond
- viga
- Eeter (ETH)
- sündmused
- näide
- Välja arvatud
- erand
- eksisteerima
- olemasolevate
- olemas
- kogemus
- Kogemused
- uurida
- väljend
- väline
- väljavõte
- Ebaõnnestunud
- vale
- pere
- tunnusjoon
- Objekte
- FUNKTSIOONID
- fail
- Faile
- filtreerimine
- Lõpuks
- leidma
- sobivus
- Järel
- toit
- eest
- formaat
- sõbrad
- Alates
- täis
- koguma
- tekitama
- klaas
- Go
- golf
- valitsemistava
- Grupp
- hadoop
- Olema
- he
- Tervis
- aidates
- aitab
- ajalugu
- Mesilaspere
- Kuidas
- Kuidas
- HTML
- http
- HTTPS
- IAM
- ID
- ideaalne
- ideid
- tunnus
- if
- illustreerib
- rakendada
- import
- in
- sügavuti minev
- sisaldama
- Kaasa arvatud
- Suurendama
- kasvanud
- osutatud
- tööstusharudes
- info
- info
- esialgne
- uuenduslik
- teadmisi
- paigaldamine
- Näiteks
- juhised
- integreeritud
- integratsioon
- huvi
- sisemine
- sisse
- IT
- töö
- Tööturg
- jpg
- Json
- Võti
- teatud
- suur
- pärast
- hiljemalt
- Õppida
- õppimine
- Raamatukogu
- LIMIT
- nimekiri
- koormus
- kohalik
- kohapeal
- liising
- logi
- loginud
- metsaraie
- otsin
- masin
- masinõpe
- tehtud
- säilitada
- tegema
- Tegemine
- juhitud
- juhtimine
- juhtiv
- käsiraamat
- materjal
- mai..
- Meedia
- Vastama
- sõnum
- Meetrika
- rändavad
- minimaalne
- ML
- modifitseeritud
- moodul
- Jälgida
- järelevalve
- rohkem
- peab
- nimi
- nimed
- Navigate
- NAVIGATSIOON
- vajalik
- Vajadus
- vaja
- vajadustele
- Uus
- mitte midagi
- nüüd
- of
- pakkumine
- on
- ONE
- ones
- ainult
- avatud
- avatud lähtekoodiga
- avatud lähtekoodiga
- operaator
- ettevõtjad
- optimaalselt
- valik
- Valikud
- or
- korraldatud
- Korraldus
- Muu
- meie
- tulemusi
- väljund
- väljaspool
- pakend
- pandas
- pane
- parameetrid
- partner
- sooritama
- Vastu võetud
- kirglik
- jõudlus
- Õigused
- püsib
- torujuhe
- Koht
- inimesele
- Platon
- Platoni andmete intelligentsus
- PlatoData
- võrra
- poliitika
- post
- potentsiaalselt
- tava
- eeldused
- eelmine
- varem
- protsess
- Protsessid
- töötlemine
- Toodet
- professionaalne
- spetsialistid
- profiilid
- Projektsioon
- tarnija
- pakkujad
- annab
- Python
- kvaliteet
- päringud
- tõstma
- valik
- Lugenud
- Lugemine
- reaalne
- reaalajas
- hiljuti
- soovitama
- piirkond
- regulatiivne
- Relee
- asendama
- asendatakse
- nõutav
- Nõuded
- ressurss
- Vahendid
- vastavalt
- vastus
- Tulemused
- säilitama
- õige
- Roll
- ROW
- jooks
- jooksmine
- s
- Säästa
- stsenaariumid
- SDK
- sujuvalt
- Otsing
- Osa
- kindlustama
- vaata
- otsima
- vanem
- Serverita
- Teenused
- kehtestamine
- seade
- Shell
- peaks
- näitama
- Näitused
- lihtne
- lihtsustama
- alates
- ühekordne
- Snapshot
- lahendus
- Lahendused
- mõned
- konkreetse
- määratletud
- Kulutused
- väljavõte
- olek
- Samm
- Sammud
- Veel
- ladustamine
- ladustatud
- Strateegia
- oja
- nöör
- edukas
- selline
- piisav
- toetama
- Toetatud
- süsteemid
- tabel
- Võtma
- võtmine
- Ülesanne
- meeskonnad
- Tehnoloogiad
- šabloon
- tänan
- et
- .
- oma
- Neile
- SIIS
- Seal.
- Need
- nad
- kolmanda osapoole
- see
- Läbi
- aeg
- et
- jälgida
- Muutma
- Reisimine
- tõsi
- püüdma
- Teisipäev
- Pöördunud
- kaks
- tüüp
- ui
- ühtne
- üksus
- Värskendused
- Uudised
- ajakohastamine
- upgrade
- täiendatud
- Üleslaadimine
- Kasutus
- kasutama
- kasutage juhtumit
- Kasutatud
- Kasutajad
- kasutamine
- väärtus
- Väärtused
- versioon
- kaudu
- vaade
- vaated
- nähtavus
- nähtav
- kõndis
- tahan
- oli
- we
- web
- veebiteenused
- Hästi
- M
- millal
- kas
- mis
- WHO
- will
- koos
- jooksul
- ilma
- Töö
- Töövoogud
- oleks
- kirjutama
- kirjalik
- sa
- Sinu
- sephyrnet