Zephyrnet-logotyp

Accelerera analysen på Amazon OpenSearch Service med AWS Glue genom dess inbyggda anslutning | Amazon webbtjänster

Datum:

I takt med att volymen och komplexiteten för analysarbetet fortsätter att växa, letar kunderna efter mer effektiva och kostnadseffektiva sätt att ta in och analysera data. Data lagras från onlinesystem som databaser, CRM och marknadsföringssystem till datalager som datasjöar på Amazon enkel lagringstjänst (Amazon S3), datalager i Amazon RedShift, och specialbyggda butiker som t.ex Amazon OpenSearch Service, Amazon Neptunusoch Amazon Timestream.

OpenSearch Service används för flera ändamål, såsom observerbarhet, sökanalys, konsolidering, kostnadsbesparingar, efterlevnad och integration. OpenSearch Service har också vektordatabasfunktioner som låter dig implementera semantisk sökning och Retrieval Augmented Generation (RAG) med stora språkmodeller (LLM) för att bygga rekommendations- och mediasökmotorer. Tidigare kunde man, för att integrera med OpenSearch Service, använda klienter med öppen källkod för specifika programmeringsspråk som t.ex. java, Python, eller JavaScript eller användning REST API: er tillhandahålls av OpenSearch Service.

Förflyttning av data över datasjöar, datalager och specialbyggda butiker uppnås genom extrahera, transformera och ladda (ETL) processer med dataintegrationstjänster som t.ex. AWS-lim. AWS Glue är en serverlös dataintegrationstjänst som gör det enkelt att upptäcka, förbereda och kombinera data för analys, maskininlärning (ML) och applikationsutveckling. AWS Glue tillhandahåller både visuella och kodbaserade gränssnitt för att göra dataintegration enkel. Att använda en inbyggd AWS Glue-kontakt ökar smidigheten, förenklar datarörelser och förbättrar datakvaliteten.

I det här inlägget utforskar vi AWS Glue native-anslutningen till OpenSearch Service och upptäcker hur den eliminerar behovet av att bygga och underhålla anpassad kod eller tredjepartsverktyg för att integrera med OpenSearch Service. Detta accelererar analyspipelines och sökanvändningsfall, vilket ger omedelbar tillgång till dina data i OpenSearch Service. Du kan nu använda data lagrad i OpenSearch Service-index som en källa eller mål i AWS Glue Studio utan kod, dra-och-släpp visuellt gränssnitt eller direkt i ett AWS Glue ETL-jobbskript. I kombination med AWS Glue ETL-funktioner förenklar den här nya kontakten skapandet av ETL-pipelines, vilket gör det möjligt för ETL-utvecklare att spara tid på att bygga och underhålla datapipelines.

Lösningsöversikt

Den nya inbyggda OpenSearch Service-anslutaren är ett kraftfullt verktyg som kan hjälpa organisationer att låsa upp den fulla potentialen i deras data. Det gör att du effektivt kan läsa och skriva data från OpenSearch Service utan att behöva installera eller hantera OpenSearch Service-anslutningsbibliotek.

I det här inlägget visar vi export av New York City Taxi and Limousine Commission (TLC) Trip Record Data dataset till OpenSearch Service med hjälp av AWS Glue native-anslutningen. Följande diagram illustrerar lösningsarkitekturen.

I slutet av det här inlägget kommer ditt visuella ETL-jobb att likna följande skärmdump.

Förutsättningar

För att följa detta inlägg behöver du en OpenSearch Service-domän som körs. För installationsinstruktioner, se Komma igång med Amazon OpenSearch Service. Se till att det är offentligt, för enkelhets skull, och notera den primära användaren och lösenordet för senare användning.

Observera att när detta skrivs stöder inte AWS Glue OpenSearch Service-anslutningen Amazon OpenSearch Serverlös, så du måste konfigurera en tillhandahållen domän.

Skapa en S3-hink

Vi använder en AWS molnformation mall för att skapa en S3-hink för att lagra exempeldata. Slutför följande steg:

  1. Välja Starta stack.
  2. Ange stapeldetaljer sida, ange ett namn för stacken.
  3. Välja Nästa.
  4. Konfigurera stackalternativ sida, välj Nästa.
  5. översyn sida, välj Jag erkänner att AWS CloudFormation kan skapa IAM-resurser.
  6. Välja Skicka.

Stacken tar cirka 2 minuter att distribuera.

Skapa ett index i OpenSearch Service-domänen

För att skapa ett index i OpenSearch-tjänstdomänen, utför följande steg:

  1. På OpenSearch Service-konsolen väljer du domäner i navigeringsfönstret.
  2. Öppna domänen du skapade som en förutsättning.
  3. Välj länken under URL för OpenSearch Dashboards.
  4. Välj på navigeringsmenyn Dev-verktyg.
  5. Ange följande kod för att skapa indexet:
PUT /yellow-taxi-index
{
  "mappings": {
    "properties": {
      "VendorID": {
        "type": "integer"
      },
      "tpep_pickup_datetime": {
        "type": "date",
        "format": "epoch_millis"
      },
      "tpep_dropoff_datetime": {
        "type": "date",
        "format": "epoch_millis"
      },
      "passenger_count": {
        "type": "integer"
      },
      "trip_distance": {
        "type": "float"
      },
      "RatecodeID": {
        "type": "integer"
      },
      "store_and_fwd_flag": {
        "type": "keyword"
      },
      "PULocationID": {
        "type": "integer"
      },
      "DOLocationID": {
        "type": "integer"
      },
      "payment_type": {
        "type": "integer"
      },
      "fare_amount": {
        "type": "float"
      },
      "extra": {
        "type": "float"
      },
      "mta_tax": {
        "type": "float"
      },
      "tip_amount": {
        "type": "float"
      },
      "tolls_amount": {
        "type": "float"
      },
      "improvement_surcharge": {
        "type": "float"
      },
      "total_amount": {
        "type": "float"
      },
      "congestion_surcharge": {
        "type": "float"
      },
      "airport_fee": {
        "type": "integer"
      }
    }
  }
}

Skapa en hemlighet för OpenSearch Service-uppgifter

I det här inlägget använder vi grundläggande autentisering och lagrar våra autentiseringsuppgifter säkert med AWS Secrets Manager. Utför följande steg för att skapa en Secrets Manager-hemlighet:

  1. Välj på Secrets Manager-konsolen Secrets i navigeringsfönstret.
  2. Välja Lagra en ny hemlighet.
  3. För Hemlig typ, Välj Annan typ av hemlighet.
  4. För Nyckel/värdepar, ange användarnamnet opensearch.net.http.auth.user och lösenordet opensearch.net.http.auth.pass.
  5. Välja Nästa.
  6. Slutför de återstående stegen för att skapa din hemlighet.

Skapa en IAM-roll för AWS Glue-jobbet

Utför följande steg för att konfigurera en AWS identitets- och åtkomsthantering (IAM) roll för AWS Glue-jobbet:

  1. Skapa en ny roll på IAM-konsolen.
  2. Bifoga AWS-hanterad policy GlueServiceRole.
  3. Bifoga följande policy till rollen. Ersätt varje ARN med motsvarande ARN för OpenSearch Service-domänen, Secrets Manager-hemligheten och S3-bucket.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "OpenSearchPolicy",
            "Effect": "Allow",
            "Action": [
                "es:ESHttpPost",
                "es:ESHttpPut"
            ],
            "Resource": [
                "arn:aws:es:<region>:<aws-account-id>:domain/<amazon-opensearch-domain-name>"
            ]
        },
        {
            "Sid": "GetDescribeSecret",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>"
        },
        {
            "Sid": "S3Policy",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

Skapa en AWS Glue-anslutning

Innan du kan använda OpenSearch Service-anslutningen måste du skapa en AWS Glue-anslutning för att ansluta till OpenSearch Service. Slutför följande steg:

  1. Välj på AWS Lim-konsolen Anslutningar i navigeringsfönstret.
  2. Välja Skapa anslutning.
  3. För Namn , stiga på opensearch-connection.
  4. För Kopplingstypväljer Amazon OpenSearch.
  5. För Domänslutpunkt, ange domänslutpunkten för OpenSearch Service.
  6. För Port, ange HTTPS-port 443.
  7. För Resurs, stiga på yellow-taxi-index.

I detta sammanhang, resurs betyder indexet för OpenSearch Service där data läses från eller skrivs till.

  1. Välja Endast Wan aktiverat.
  2. För AWS hemlighet, välj hemligheten du skapade tidigare.
  3. Alternativt, om du ansluter till en OpenSearch Service-domän i en VPC, ange en VPC, subnät och säkerhetsgrupp för att köra AWS Glue-jobb i VPC:n. För säkerhetsgrupper krävs en självreferensregel för inkommande. För mer information, se Konfigurera nätverk för utveckling för AWS Glue.
  4. Välja Skapa anslutning.

Skapa ett ETL-jobb med AWS Glue Studio

Slutför följande steg för att skapa ditt AWS Glue ETL-jobb:

  1. Välj på AWS Lim-konsolen Visuell ETL i navigeringsfönstret.
  2. Välja Skapa jobb och Visuell ETL.
  3. På AWS Glue Studio-konsolen ändrar du jobbnamnet till opensearch-etl.
  4. Välja Amazon S3 för datakällan och Amazon OpenSearch för datamålet.

Mellan källan och målet kan du valfritt infoga transformationsnoder. I den här lösningen skapar vi ett jobb som bara har käll- och målnoder för enkelhetens skull.

  1. I Datakällans egenskaper sektion, ange S3-bucket där exempeldata finns och välj Parkett som dataformat.
  2. I Datasink egenskaper avsnitt, ange anslutningen du skapade i föregående avsnitt (opensearch-connection).
  3. Välj Jobb detaljer fliken och i Grundläggande egenskaper avsnittet, ange IAM-rollen du skapade tidigare.
  4. Välja Save att spara ditt jobb och välja Körning att köra jobbet.
  5. Navigera till Körs fliken för att kontrollera jobbets status. När det är framgångsrikt bör körstatus vara Lyckades.
  6. När jobbet har körts framgångsrikt, navigera till OpenSearch Dashboards och logga in på instrumentpanelen.
  7. Välja Dashboardshantering på navigeringsmenyn.
  8. Välja Indexmönster, och välj Skapa indexmönster.
  9. ange yellow-taxi-index för Indexmönsternamn.
  10. Välja tpep_pickup_datetime för Tid.
  11. Välja Skapa indexmönster. Detta indexmönster kommer att användas för att visualisera indexet.
  12. Välja Upptäck på navigeringsmenyn och välj yellow-taxi-index.


Du har nu skapat ett index i OpenSearch Service och laddat in data från Amazon S3 med bara några få steg med hjälp av AWS Glue OpenSearch Service inbyggda anslutning.

Städa upp

För att undvika att ådra sig avgifter, rensa resurserna i ditt AWS-konto genom att slutföra följande steg:

  1. Välj på AWS Lim-konsolen ETL jobb i navigeringsfönstret.
  2. Välj jobbet från listan över jobb opensearch-etl, och på Handlingar meny, välj Radera.
  3. Välj på AWS Lim-konsolen Dataanslutningar i navigeringsfönstret.
  4. Välja opensearch-connection från listan över kontakter och på Handlingar meny, välj Radera.
  5. Välj på IAM-konsolen roller på navigeringssidan.
  6. Välj rollen du skapade för AWS Glue-jobbet och ta bort det.
  7. Välj på CloudFormation-konsolen Stacks i navigeringsfönstret.
  8. Välj stapeln du skapade för S3-hinken och exempeldata och ta bort den.
  9. Välj på Secrets Manager-konsolen Secrets i navigeringsfönstret.
  10. Välj hemligheten du skapade och på Handlingar meny, välj Radera.
  11. Minska väntetiden till 7 dagar och schemalägg raderingen.

Slutsats

Integrationen av AWS Glue med OpenSearch Service lägger till den kraftfulla förmågan att utföra datatransformation vid integration med OpenSearch Service för analytiska användningsfall. Detta gör det möjligt för organisationer att effektivisera dataintegration och analys med OpenSearch Service. Den serverlösa karaktären hos AWS Glue innebär ingen infrastrukturhantering, och du betalar endast för de resurser som förbrukas medan dina jobb körs. Eftersom organisationer i allt högre grad förlitar sig på data för beslutsfattande, ger denna inbyggda Spark-koppling en effektiv, kostnadseffektiv och smidig lösning för att snabbt möta behoven av dataanalys.


Om författarna

Basheer sheriff är Senior Solutions Architect på AWS. Han älskar att hjälpa kunder att lösa intressanta problem med hjälp av ny teknik. Han är baserad i Melbourne, Australien, och gillar att spela sporter som fotboll och cricket.

Shunsuke Goto är en prototypingenjör som arbetar på AWS. Han arbetar nära kunderna för att bygga deras prototyper och hjälper även kunder att bygga analyssystem.

plats_img

Senaste intelligens

plats_img