Ընդլայնել աշխարհատարածական հարցումները Amazon Athena-ում UDF-ներով և AWS Lambda-ով - POKIKA

Ընդլայնել աշխարհատարածական հարցումները Amazon Athena-ում UDF-ներով և AWS Lambda-ով

Amazon Athena-ն առանց սերվերի և ինտերակտիվ հարցումների ծառայություն է, որը թույլ է տալիս հեշտությամբ վերլուծել տվյալները Amazon Simple Storage Service-ում (Amazon S3) և 25-ից ավել տվյալների աղբյուրներում, ներառյալ ներքին տվյալների աղբյուրները կամ այլ ամպային համակարգեր՝ օգտագործելով SQL կամ Python: Athena-ի ներկառուցված հնարավորությունները ներառում են աշխարհատարածական տվյալների հարցումը. օրինակ, դուք կարող եք հաշվել Կալիֆոռնիայի յուրաքանչյուր շրջանի երկրաշարժերի թիվը: Վարչաշրջանի մակարդակով վերլուծության թերությունն այն է, որ այն կարող է ձեզ ապակողմնորոշիչ տպավորություն ստեղծել, թե Կալիֆոռնիայի որ մասերն են ամենաշատ երկրաշարժերն ունեցել: Դա պայմանավորված է նրանով, որ շրջանները հավասարաչափ չեն. մի կոմսություն կարող է ավելի շատ երկրաշարժեր ունենալ միայն այն պատճառով, որ այն մեծ կոմսություն է: Ի՞նչ կլիներ, եթե մենք ուզենայինք հիերարխիկ համակարգ, որը թույլ կտա մեզ մեծացնել և փոքրացնել՝ տարբեր հավասարաչափ աշխարհագրական տարածքների վերաբերյալ տվյալները համախմբելու համար:

Այս գրառման մեջ մենք ներկայացնում ենք լուծում, որն օգտագործում է Uber-ի վեցանկյուն հիերարխիկ տարածական ինդեքսը (H3)՝ երկրագունդը հավասարաչափ վեցանկյունների բաժանելու համար: Այնուհետև մենք օգտագործում ենք Athena օգտագործողի կողմից սահմանված ֆունկցիան (UDF)՝ որոշելու համար, թե որ վեցանկյունում է տեղի ունեցել յուրաքանչյուր պատմական երկրաշարժ: Քանի որ վեցանկյունները հավասար չափերի են, այս վերլուծությունը տալիս է արդարացի տպավորություն, թե որտեղ են հակված երկրաշարժերը:

Վերջում մենք կներկայացնենք ստորև ներկայացվածի նման պատկերացում, որը ցույց է տալիս պատմական երկրաշարժերի թիվը ԱՄՆ-ի արևմտյան տարբեր շրջաններում:

H3-ը գլոբուսը բաժանում է հավասար չափի կանոնավոր վեցանկյունների։ Վեցանկյունների թիվը կախված է ընտրված լուծաչափից, որը կարող է տատանվել 0-ից (122 վեցանկյուն, յուրաքանչյուրը եզրերի երկարությամբ մոտ 1100 կմ) մինչև 15 (569,707,381,193,162 վեցանկյուն, որոնցից յուրաքանչյուրը եզրերի երկարությամբ մոտ 50 սմ է): H3-ը հնարավորություն է տալիս վերլուծել տարածքի մակարդակով, և յուրաքանչյուր տարածք ունի նույն չափն ու ձևը:

Լուծման ակնարկ

Լուծումը ընդլայնում է Athena-ի ներկառուցված աշխարհատարածական հնարավորությունները՝ ստեղծելով UDF, որը սնուցվում է AWS Lambda-ով: Վերջապես, մենք օգտագործում ենք Amazon SageMaker նոթատետր՝ Athena հարցումները գործարկելու համար, որոնք ներկայացվում են որպես choropleth քարտեզ: Հետևյալ դիագրամը ցույց է տալիս այս ճարտարապետությունը:

Ավարտից մինչև վերջ ճարտարապետությունը հետևյալն է.

  1. Պատմական երկրաշարժերի CSV ֆայլը վերբեռնվում է S3 դույլի մեջ:
  2. AWS Glue արտաքին աղյուսակը ստեղծվել է երկրաշարժի CSV-ի հիման վրա:
  3. Lambda ֆունկցիան հաշվարկում է H3 վեցանկյունները պարամետրերի համար (լայնություն, երկայնություն, լուծում): Ֆունկցիան գրված է Java-ով և կարելի է անվանել որպես UDF՝ օգտագործելով հարցումները Athena-ում:
  4. SageMaker նոթատետրը օգտագործում է AWS SDK պանդաների փաթեթ՝ Athena-ում SQL հարցումը գործարկելու համար, ներառյալ UDF-ը:
  5. Plotly Express փաթեթը ներկայացնում է յուրաքանչյուր վեցանկյունում երկրաշարժերի քանակի խորոպլետ քարտեզ:

Նախադրյալներ

Այս գրառման համար մենք օգտագործում ենք Athena-ն՝ կարդալու տվյալները Amazon S3-ում՝ օգտագործելով AWS Glue Data Catalog-ում սահմանված աղյուսակը՝ կապված մեր երկրաշարժերի տվյալների հետ: Թույլտվությունների առումով երկու հիմնական պահանջ կա.

Կարգավորեք Amazon S3-ը

Առաջին քայլը երկրաշարժերի տվյալների բազան պահելու համար S3 դույլ ստեղծելն է, հետևյալ կերպ.

  1. Ներբեռնեք պատմական երկրաշարժերի CSV ֆայլը GitHub-ից:
  2. Amazon S3 վահանակի վրա ընտրեք Դույլեր նավիգացիոն վահանակում:
  3. Ընտրեք Ստեղծեք դույլ.
  4. Համար Դույլի անվանումըմուտքագրեք գլոբալ եզակի անուն ձեր տվյալների դույլի համար:
  5. Ընտրեք Ստեղծել թղթապանակև մուտքագրեք թղթապանակի անունը earthquakes.
  6. Վերբեռնեք ֆայլը S3 դույլ: Այս օրինակում մենք վերբեռնում ենք earthquakes.csv ֆայլը դեպի earthquakes նախածանց.

Ստեղծեք սեղան Աթենայում

Սեղան ստեղծելու համար անցեք Athena կոնսոլ: Լրացրեք հետևյալ քայլերը.

  1. Athena վահանակի վրա ընտրեք Հարցման խմբագիր.
  2. Ընտրեք ձեր նախընտրած աշխատանքային խումբը՝ օգտագործելով բացվող ընտրացանկը:
  3. SQL խմբագրիչում օգտագործեք հետևյալ կոդը՝ կանխադրված տվյալների բազայում աղյուսակ ստեղծելու համար.
    CREATE external TABLE earthquakes
    (
      earthquake_date STRING,
      latitude DOUBLE,
      longitude DOUBLE,
      depth DOUBLE,
      magnitude DOUBLE,
      magtype STRING,
      mbstations STRING,
      gap STRING,
      distance STRING,
      rms STRING,
      source STRING,
      eventid STRING
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    STORED AS TEXTFILE LOCATION 's3://<MY-DATA-BUCKET>/earthquakes/';

Ստեղծեք Lambda ֆունկցիա Athena UDF-ի համար

Athena UDF-ների կառուցման վերաբերյալ մանրամասն բացատրության համար տե՛ս «Հարցումներ օգտատիրոջ կողմից սահմանված գործառույթներով»: Մենք օգտագործում ենք Java 11 և Uber H3 Java binding՝ H3 UDF-ը կառուցելու համար: Մենք տրամադրում ենք UDF-ի իրականացումը GitHub-ում:

Լամբդայի միջոցով UDF-ի տեղակայման մի քանի տարբերակ կա: Այս օրինակում մենք օգտագործում ենք AWS Management Console-ը: Արտադրության տեղակայման համար դուք հավանաբար ցանկանում եք օգտագործել ենթակառուցվածքը որպես կոդ, ինչպիսին է AWS Cloud Development Kit-ը (AWS CDK): AWS CDK-ն օգտագործելու Lambda ֆունկցիան գործարկելու համար տեղեկության համար այցելեք նախագծի կոդերի շտեմարան: Տեղակայման մեկ այլ հնարավոր տարբերակ է AWS Serverless Application Repository (SAR) օգտագործումը:

Տեղադրեք UDF-ը

Տեղադրեք Uber H3 պարտադիր UDF-ը, օգտագործելով վահանակը հետևյալ կերպ.

  1. Գնացեք GitHub պահեստի երկուական գրացուցակ և ներբեռնեք aws-h3-athena-udf-*.jar ձեր տեղական աշխատասեղանին:
  2. Ստեղծեք Lambda ֆունկցիա, որը կոչվում է H3UDF հետ Runtime սահմանված է Java 11 (Corretto)և Ճարտարապետություն սահմանված է x86_64.
  3. Վերբեռնեք aws-h3-athena-udf*.jar ֆայլ։
  4. Փոխեք մշակողի անունը com.aws.athena.udf.h3.H3AthenaHandler.
  5. Մեջ Ընդհանուր կոնֆիգուրացիա բաժին, ընտրիր Խմբագրել Lambda ֆունկցիայի հիշողությունը սահմանելու համար 4096 ՄԲ, որը հիշողության քանակն է, որն աշխատում է մեր օրինակների համար: Հնարավոր է, որ ձեզ անհրաժեշտ լինի հիշողության չափն ավելի մեծ սահմանել ձեր օգտագործման դեպքերի համար:

Օգտագործեք Lambda ֆունկցիան որպես Athena UDF

Lambda ֆունկցիան ստեղծելուց հետո դուք պատրաստ եք այն օգտագործել որպես UDF: Հետևյալ սքրինշոթը ցույց է տալիս գործառույթի մանրամասները:

Այժմ դուք կարող եք օգտագործել գործառույթը որպես Athena UDF: Athena վահանակի վրա գործարկեք հետևյալ հրամանը.

USING EXTERNAL FUNCTION lat_lng_to_cell_address(lat DOUBLE, lng DOUBLE, res INTEGER)
RETURNS VARCHAR
LAMBDA '<MY-LAMBDA-ARN>'-- Replace with ARN of your Lambda function.
SELECT *,
       lat_lng_to_cell_address(latitude, longitude, 4) AS h3_cell
FROM earthquakes
WHERE latitude BETWEEN 18 AND 70;

Այն udf/examples GitHub պահոցի թղթապանակը ներառում է Athena հարցումների ավելի շատ օրինակներ:

UDF-ների մշակում

Այժմ, երբ մենք ձեզ ցույց տվեցինք, թե ինչպես տեղադրել UDF-ը Athena-ի համար՝ օգտագործելով Lambda, եկեք ավելի խորանանք, թե ինչպես զարգացնել այս տեսակի UDF-ները: Ինչպես բացատրվում է Querying with user-ի սահմանված գործառույթներով, UDF մշակելու համար մենք նախ պետք է ներդրենք մի դաս, որը ժառանգում է. UserDefinedFunctionHandler. Այնուհետև մենք պետք է դասի ներսում իրականացնենք գործառույթները, որոնք կարող են օգտագործվել որպես Athena-ի UDF-ներ:

Մենք սկսում ենք UDF-ի իրականացումը դասի սահմանմամբ H3AthenaHandler որը ժառանգում է UserDefinedFunctionHandler. Այնուհետև մենք իրականացնում ենք գործառույթներ, որոնք գործում են որպես Uber H3 Java կապում սահմանված գործառույթների փաթեթավորում: Մենք համոզվում ենք, որ H3 Java binding API-ում սահմանված բոլոր գործառույթները քարտեզագրված են, որպեսզի դրանք կարողանան օգտագործվել Athena-ում որպես UDF: Օրինակ, մենք քարտեզագրում ենք lat_lng_to_cell_address ֆունկցիան, որն օգտագործվում է նախորդ օրինակում latLngToCell H3 Java կապի մասին:

Java-ի պարտադիր զանգի գագաթին, շատ գործառույթներ են H3AthenaHandler ստուգեք, թե արդյոք մուտքային պարամետրը զրոյական է: Զեղչի ստուգումը օգտակար է, քանի որ մենք չենք ենթադրում, որ մուտքագրումը ոչ զրո է: Գործնականում զրոյական արժեքները H3 ինդեքսի կամ հասցեի համար արտասովոր չեն:

Հետևյալ կոդը ցույց է տալիս ծրագրի իրականացումը get_resolution գործառույթ:

/** Returns the resolution of an index.
     *  @param h3 the H3 index.
     *  @return the resolution. Null when h3 is null.
     *  @throws IllegalArgumentException when index is out of range.
     */
    public Integer get_resolution(Long h3){
        final Integer result;
        if (h3 == null) {
            result = null;
        } else {
            result = h3Core.getResolution(h3);
        }
        return result;
    }

Որոշ H3 API գործառույթներ, ինչպիսիք են cellToLatLng վերադարձ List<Double> երկու տարրերից, որտեղ առաջին տարրը լայնությունն է, իսկ երկրորդը` երկայնությունը: H3 UDF-ը, որը մենք իրականացնում ենք, ապահովում է գործառույթ, որը վերադարձնում է հայտնի տեքստի (WKT) ներկայացումը: Օրինակ՝ մենք տրամադրում ենք cell_to_lat_lng_wktորը վերադարձնում է ա Point WKT տողի փոխարեն List<Double>. Այնուհետև մենք կարող ենք օգտագործել ելքը cell_to_lat_lng_wkt ներկառուցված Athena ST_GeometryFromText ֆունկցիայի հետ համատեղ՝ հետևյալ կերպ.

USING EXTERNAL FUNCTION cell_to_lat_lng_wkt(h3 BIGINT) 
RETURNS VARCHAR
LAMBDA '<MY-LAMBDA-ARN>'
SELECT ST_GeometryFromText(cell_to_lat_lng_wkt(622506764662964223))

Athena UDF-ն աջակցում է միայն սկալային տվյալների տեսակներին և չի աջակցում ներդիր տիպերին: Այնուամենայնիվ, որոշ H3 API-ներ վերադարձնում են ներկառուցված տեսակներ: Օրինակ, ի polygonToCells ֆունկցիան H3-ում վերցնում է ա List<List<List<GeoCoord>>>. Մեր իրականացումը polygon_to_cells UDF-ն ստանում է ա Polygon Փոխարենը WKT: Հետևյալը ցույց է տալիս Athena հարցման օրինակ՝ օգտագործելով այս UDF-ը.

-- get all h3 hexagons that cover Toulouse, Nantes, Lille, Paris, Nice 
USING EXTERNAL FUNCTION polygon_to_cells(polygonWKT VARCHAR, res INT)
RETURNS ARRAY(BIGINT)
LAMBDA '<MY-LAMBDA-ARN>'
SELECT polygon_to_cells('POLYGON ((43.604652 1.444209, 47.218371 -1.553621, 50.62925 3.05726, 48.864716 2.349014, 43.6961 7.27178, 3.604652 1.444209))', 2)

Վիզուալիզացիայի համար օգտագործեք SageMaker նոթատետրերը

SageMaker նոութբուքը կառավարվող մեքենայական ուսուցման հաշվարկային օրինակ է, որն աշխատում է Jupyter-ի նոութբուքի հավելվածով: Այս օրինակում մենք կօգտագործենք SageMaker նոթատետրը՝ գրելու և գործարկելու մեր կոդը՝ մեր արդյունքները պատկերացնելու համար, բայց եթե ձեր օգտագործման դեպքը ներառում է Apache Spark-ը, ապա Amazon Athena-ի օգտագործումը Apache Spark-ի համար հիանալի ընտրություն կլինի: SageMaker-ի անվտանգության լավագույն փորձի վերաբերյալ խորհրդատվության համար տե՛ս Amazon SageMaker-ի հետ անվտանգ մեքենայական ուսուցման միջավայրերի կառուցում: Դուք կարող եք ստեղծել ձեր սեփական SageMaker նոթատետրը՝ հետևելով հետևյալ հրահանգներին.

  1. SageMaker վահանակում ընտրեք Տետր նավիգացիոն վահանակում:
  2. Ընտրեք Նոթատետրի օրինակներ.
  3. Ընտրեք Ստեղծեք նոթատետրի օրինակ.
  4. Մուտքագրեք նոթատետրի օրինակի անունը:
  5. Ընտրեք գոյություն ունեցող IAM դերը կամ ստեղծեք դեր, որը թույլ է տալիս գործարկել SageMaker-ը և թույլ է տալիս մուտք գործել Amazon S3 և Athena:
  6. Ընտրեք Ստեղծեք նոթատետրի օրինակ.
  7. Սպասեք, մինչև նոթատետրի կարգավիճակը փոխվի Creating դեպի InService.
  8. Բացեք նոթատետրի օրինակը՝ ընտրելով Յուպիտեր կամ JupyterLab.

Ուսումնասիրեք տվյալները

Այժմ մենք պատրաստ ենք ուսումնասիրել տվյալները:

  1. Jupyter վահանակի վրա, տակ Նորընտրիր Տետր.
  2. Վրա Ընտրեք միջուկը բացվող ընտրացանկ, ընտրեք conda_python3.
  3. Ավելացրեք նոր բջիջներ՝ ընտրելով գումարած նշանը:
  4. Ձեր առաջին բջիջում ներբեռնեք հետևյալ Python մոդուլները, որոնք ներառված չեն ստանդարտ SageMaker միջավայրում.
    !pip install geojson
    !pip install awswrangler
    !pip install geomet
    !pip install shapely

    GeoJSON-ը տարածական տվյալները JSON ձևաչափով պահելու հայտնի ձևաչափ է: Այն geojson մոդուլը թույլ է տալիս հեշտությամբ կարդալ և գրել GeoJSON տվյալները Python-ով: Երկրորդ մոդուլը, որը մենք տեղադրում ենք, awswrangler, AWS SDK-ն է պանդաների համար: Սա AWS տվյալների տարբեր աղբյուրներից Pandas-ի տվյալների շրջանակների մեջ կարդալու շատ հեշտ միջոց է: Մենք այն օգտագործում ենք Աթենայի աղյուսակից երկրաշարժի տվյալները կարդալու համար:

  5. Հաջորդը, մենք ներմուծում ենք բոլոր փաթեթները, որոնք օգտագործում ենք տվյալների ներմուծման, ձևափոխելու և պատկերացնելու համար.
    from geomet import wkt
    import plotly.express as px
    from shapely.geometry import Polygon, mapping
    import awswrangler as wr
    import pandas as pd
    from shapely.wkt import loads
    import geojson
    import ast

  6. Մենք սկսում ենք ներմուծել մեր տվյալները՝ օգտագործելով athena.read_sql._query գործառույթը AWS SDK-ում պանդաների համար: Athena հարցումն ունի ենթահարկ, որն օգտագործում է UDF-ը՝ սյունակ ավելացնելու համար h3_cell յուրաքանչյուր շարքում earthquakes Աղյուսակ՝ հիմնված երկրաշարժի լայնության և երկայնության վրա։ Անալիտիկ ֆունկցիա COUNT Այնուհետև օգտագործվում է յուրաքանչյուր H3 բջիջում երկրաշարժերի քանակը պարզելու համար: Այս վիզուալիզացիայի համար մեզ հետաքրքրում են միայն ԱՄՆ-ի տարածքում երկրաշարժերը, ուստի մենք զտում ենք տվյալների շրջանակի տողերը, որոնք գտնվում են հետաքրքրության տարածքից դուրս.
    def run_query(lambda_arn, db, resolution):
        query = f"""USING EXTERNAL FUNCTION cell_to_boundary_wkt(cell VARCHAR)
                        RETURNS ARRAY(VARCHAR)
                        LAMBDA '{lambda_arn}'
                           SELECT h3_cell, cell_to_boundary_wkt(h3_cell) as boundary, quake_count FROM(
                            USING EXTERNAL FUNCTION lat_lng_to_cell_address(lat DOUBLE, lng DOUBLE, res INTEGER)
                             RETURNS VARCHAR
                            LAMBDA '{lambda_arn}'
                        SELECT h3_cell, COUNT(*) AS quake_count
                          FROM
                            (SELECT *,
                               lat_lng_to_cell_address(latitude, longitude, {resolution}) AS h3_cell
                             FROM earthquakes
                             WHERE latitude BETWEEN 18 AND 70        -- For this visualisation, we're only interested in earthquakes within the USA.
                               AND longitude BETWEEN -175 AND -50
                             )
                           GROUP BY h3_cell ORDER BY quake_count DESC) cell_quake_count"""
        return wr.athena.read_sql_query(query, database=db)
    
    lambda_arn = '<MY-LAMBDA-ARN>' # Replace with ARN of your lambda.
    db_name="<MY-DATABASE-NAME>" # Replace with name of your Glue database.
    earthquakes_df = run_query(lambda_arn=lambda_arn,db=db_name, resolution=4)
    earthquakes_df.head()

    Հետևյալ սքրինշոթը ցույց է տալիս մեր արդյունքները:

Հետևեք մեր Jupyter նոթատետրում մնացած քայլերին, որպեսզի տեսնեք, թե ինչպես ենք մենք վերլուծում և պատկերացնում մեր օրինակը H3 UDF տվյալների հետ:

Պատկերացրեք արդյունքները

Մեր արդյունքները պատկերացնելու համար մենք օգտագործում ենք Plotly Express մոդուլը՝ ստեղծելու մեր տվյալների choropleth քարտեզը: Չորոպլեթ քարտեզը վիզուալիզացիայի տեսակ է, որը ստվերվում է քանակական արժեքների հիման վրա: Սա հիանալի պատկերացում է մեր օգտագործման դեպքի համար, քանի որ մենք ստվերում ենք տարբեր շրջաններ՝ հիմնվելով երկրաշարժերի հաճախականության վրա:

Ստացված վիզուալում մենք կարող ենք տեսնել Հյուսիսային Ամերիկայի տարբեր տարածքներում երկրաշարժերի հաճախականության միջակայքերը: Նկատի ունեցեք, որ այս քարտեզում H3 լուծաչափը ավելի ցածր է, քան նախկինում, ինչը ստիպում է յուրաքանչյուր վեցանկյուն ծածկել երկրագնդի ավելի մեծ տարածք:

Մաքրել

Ձեր հաշվի վրա հավելյալ գանձումներից խուսափելու համար ջնջեք ձեր ստեղծած ռեսուրսները.

  1. SageMaker վահանակում ընտրեք նոթատետրը և վրա Գործողություններ ընտրացանկ, ընտրեք Դադարեցրեք.
  2. Սպասեք, մինչև նոթատետրի կարգավիճակը փոխվի Stoppedապա նորից ընտրեք նոթատետրը և վրա Գործողություններ ընտրացանկ, ընտրեք Ջնջել.
  3. Amazon S3 վահանակում ընտրեք ձեր ստեղծած դույլը և ընտրեք Դատարկ.
  4. Մուտքագրեք դույլի անունը և ընտրեք Դատարկ.
  5. Կրկին ընտրեք դույլը և ընտրեք Ջնջել.
  6. Մուտքագրեք դույլի անունը և ընտրեք Ջնջել դույլը.
  7. Lambda վահանակում ընտրեք ֆունկցիայի անունը և վրա Գործողություններ ընտրացանկ, ընտրեք Ջնջել.

Եզրակացություն

Այս գրառման մեջ դուք տեսաք, թե ինչպես կարելի է ընդլայնել գործառույթները Աթենայում աշխարհատարածական վերլուծության համար՝ ավելացնելով ձեր օգտագործողի կողմից սահմանված գործառույթը: Չնայած այս ցուցադրության ժամանակ մենք օգտագործել ենք Uber-ի H3 աշխարհատարածական ինդեքսը, դուք կարող եք բերել ձեր սեփական աշխարհատարածական ինդեքսը ձեր սեփական աշխարհատարածական վերլուծության համար:

Այս գրառման մեջ մենք օգտագործեցինք Athena, Lambda և SageMaker նոթատետրերը՝ պատկերացնելու մեր UDF-ների արդյունքները արևմտյան ԱՄՆ-ում: Կոդի օրինակները գտնվում են h3-udf-for-athena GitHub ռեպո-ում:

Որպես հաջորդ քայլ, դուք կարող եք փոփոխել այս գրառման կոդը և հարմարեցնել այն ձեր սեփական կարիքների համար՝ ձեր սեփական աշխարհագրական տվյալներից հետագա պատկերացումներ ձեռք բերելու համար: Օրինակ, դուք կարող եք պատկերացնել այլ դեպքեր, ինչպիսիք են երաշտները, ջրհեղեղները և անտառահատումները:


Հեղինակների մասին

Ջոն Թելֆորդ Amazon Web Services-ի ավագ խորհրդատու է: Նա մեծ տվյալների և տվյալների պահեստների մասնագետ է։ Ջոնն ունի համակարգչային գիտության աստիճան Բրունելի համալսարանից:

Անվար Ռիզալ մեքենայական ուսուցման ավագ խորհրդատու է՝ հիմնված Փարիզում: Նա աշխատում է AWS հաճախորդների հետ՝ մշակելու տվյալների և AI լուծումներ՝ իրենց բիզնեսը կայուն զարգացնելու համար:

Փոլին Թինգ AWS Professional Services թիմում տվյալների գիտնական է: Նա աջակցում է հաճախորդներին հասնելու և արագացնելու իրենց բիզնեսի արդյունքը՝ զարգացնելով կայուն AI/ML լուծումներ: Ազատ ժամանակ Փոլինը սիրում է ճանապարհորդել, ճամփորդել և փորձել նոր աղանդերային վայրեր։

Source by [author_name]