Zephyrnet-logo

Versnel analyses op Amazon OpenSearch Service met AWS Glue via de native connector | Amazon-webservices

Datum:

Naarmate het volume en de complexiteit van de analyseworkloads blijven groeien, zijn klanten op zoek naar efficiëntere en kosteneffectievere manieren om gegevens op te nemen en te analyseren. Gegevens worden opgeslagen van onlinesystemen zoals databases, CRM's en marketingsystemen tot gegevensopslagplaatsen zoals datameren Amazon eenvoudige opslagservice (Amazon S3), datawarehouses in Amazon roodverschuiving, en speciaal gebouwde winkels zoals Amazon OpenSearch-service, Amazone Neptunus en Amazone-tijdstroom.

OpenSearch Service wordt voor meerdere doeleinden gebruikt, zoals observatie, zoekanalyse, consolidatie, kostenbesparingen, compliance en integratie. OpenSearch Service beschikt ook over vectordatabasemogelijkheden waarmee u semantisch zoeken en Retrieval Augmented Generation (RAG) kunt implementeren met grote taalmodellen (LLM's) om aanbevelings- en mediazoekmachines te bouwen. Voorheen kon u voor integratie met OpenSearch Service open source-clients gebruiken voor specifieke programmeertalen zoals Java, Pythonof JavaScript of gebruik REST API's geleverd door de OpenSearch-service.

De verplaatsing van gegevens tussen datameren, datawarehouses en speciaal gebouwde winkels wordt bereikt door extractie-, transformatie- en laadprocessen (ETL-processen) met behulp van data-integratiediensten zoals AWS lijm. AWS Glue is een serverloze data-integratieservice waarmee u eenvoudig gegevens kunt ontdekken, voorbereiden en combineren voor analyse, machine learning (ML) en applicatie-ontwikkeling. AWS Glue biedt zowel visuele als op code gebaseerde interfaces om data-integratie moeiteloos te maken. Het gebruik van een native AWS Glue-connector verhoogt de flexibiliteit, vereenvoudigt de gegevensverplaatsing en verbetert de gegevenskwaliteit.

In dit bericht verkennen we de native AWS Glue-connector voor OpenSearch Service en ontdekken hoe deze de noodzaak elimineert om aangepaste code of tools van derden te bouwen en te onderhouden om te integreren met OpenSearch Service. Dit versnelt analysepijplijnen en zoekgebruiksscenario's, waardoor directe toegang tot uw gegevens in OpenSearch Service wordt geboden. U kunt nu gegevens die zijn opgeslagen in OpenSearch Service-indexen gebruiken als bron of doel binnen de AWS Glue Studio no-code, visuele interface met slepen en neerzetten of rechtstreeks in een AWS Glue ETL-taakscript. In combinatie met AWS Glue ETL-mogelijkheden vereenvoudigt deze nieuwe connector het maken van ETL-pijplijnen, waardoor ETL-ontwikkelaars tijd kunnen besparen bij het bouwen en onderhouden van datapijplijnen.

Overzicht oplossingen

De nieuwe native OpenSearch Service-connector is een krachtig hulpmiddel waarmee organisaties het volledige potentieel van hun gegevens kunnen ontsluiten. Hiermee kunt u efficiënt gegevens uit de OpenSearch Service lezen en schrijven zonder dat u OpenSearch Service connectorbibliotheken hoeft te installeren of beheren.

In dit bericht demonstreren we het exporteren van de New York City Taxi and Limousine Commission (TLC) Reisregistratiegegevens dataset in OpenSearch Service met behulp van de AWS Glue native connector. Het volgende diagram illustreert de oplossingsarchitectuur.

Aan het einde van dit bericht zal uw visuele ETL-taak lijken op de volgende schermafbeelding.

Voorwaarden

Om dit bericht te kunnen volgen, heb je een actief OpenSearch Service-domein nodig. Voor installatie-instructies, zie Aan de slag met Amazon OpenSearch Service. Zorg ervoor dat het openbaar is, voor de eenvoud, en noteer de primaire gebruiker en het wachtwoord voor later gebruik.

Houd er rekening mee dat op het moment van schrijven de AWS Glue OpenSearch Service-connector geen ondersteuning biedt Amazon OpenSearch Serverloos, dus u moet een ingericht domein instellen.

Maak een S3-bucket

We gebruiken een AWS CloudFormatie sjabloon om een ​​S3-bucket te maken om de voorbeeldgegevens op te slaan. Voer de volgende stappen uit:

  1. Kies Start Stack.
  2. Op de Geef stapeldetails op pagina, voer een naam in voor de stapel.
  3. Kies Volgende.
  4. Op de Configureer stapelopties pagina, kies Volgende.
  5. Op de Beoordeling 4040 hand404040 details hand4040 hand 3 details hand40 hand40 hand details details details details hand 3 Ik erken dat AWS CloudFormation IAM-bronnen kan creëren.
  6. Kies Verzenden.

Het duurt ongeveer 2 minuten om de stapel te implementeren.

Maak een index in het OpenSearch Service-domein

Voer de volgende stappen uit om een ​​index in het OpenSearch-servicedomein te maken:

  1. Kies in de OpenSearch Service-console domeinen in het navigatievenster.
  2. Open het domein dat u als vereiste heeft gemaakt.
  3. Kies de onderstaande link URL van OpenSearch-dashboards.
  4. Kies in het navigatiemenu Dev Tools.
  5. Voer de volgende code in om de index te maken:
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"
      }
    }
  }
}

Maak een geheim voor de OpenSearch Service-referenties

In dit bericht gebruiken we basisauthenticatie en slaan we onze authenticatiegegevens veilig op AWS-geheimenmanager. Voer de volgende stappen uit om een ​​Secrets Manager-geheim te maken:

  1. Kies op de Secrets Manager-console Secrets in het navigatievenster.
  2. Kies Bewaar een nieuw geheim.
  3. Voor Geheim typeselecteer Ander soort geheim.
  4. Voor Sleutel/waarde-paren, voer de gebruikersnaam in opensearch.net.http.auth.user en het wachtwoord opensearch.net.http.auth.pass.
  5. Kies Volgende.
  6. Voltooi de resterende stappen om uw geheim te creëren.

Maak een IAM-rol voor de AWS Glue-taak

Voer de volgende stappen uit om een AWS Identiteits- en toegangsbeheer (IAM) rol voor de AWS Glue-taak:

  1. Maak op de IAM-console een nieuwe rol.
  2. Voeg het door AWS beheerde beleid toe GlueServiceRol.
  3. Koppel het volgende beleid aan de rol. Vervang elke ARN door de overeenkomstige ARN van het OpenSearch Service-domein, het Secrets Manager-geheim en de 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>/*"
            ]
        }
    ]
}

Een AWS Glue-verbinding maken

Voordat u de OpenSearch Service-connector kunt gebruiken, moet u een AWS Glue-verbinding maken om verbinding te maken met OpenSearch Service. Voer de volgende stappen uit:

  1. Kies op de AWS Glue-console: aansluitingen in het navigatievenster.
  2. Kies Verbinding maken.
  3. Voor Naam, ga naar binnen opensearch-connection.
  4. Voor Connectie type, kiezen AmazonOpenSearch.
  5. Voor Domein eindpunt, voer het domeineindpunt van OpenSearch Service in.
  6. Voor Haven, voer HTTPS-poort 443 in.
  7. Voor Hulpmiddelen, ga naar binnen yellow-taxi-index.

In deze context, hulpbron betekent de index van de OpenSearch-service waar de gegevens van worden gelezen of waarnaar wordt geschreven.

  1. kies Alleen Wan ingeschakeld.
  2. Voor AWS-geheim, kies het geheim dat u eerder hebt gemaakt.
  3. Als u verbinding maakt met een OpenSearch Service-domein in een VPC, kunt u optioneel een VPC, subnet en beveiligingsgroep opgeven om AWS Glue-taken binnen de VPC uit te voeren. Voor beveiligingsgroepen is een naar zichzelf verwijzende regel voor binnenkomend verkeer vereist. Voor meer informatie, zie Netwerken opzetten voor ontwikkeling voor AWS Glue.
  4. Kies Verbinding maken.

Maak een ETL-taak met AWS Glue Studio

Voer de volgende stappen uit om uw AWS Glue ETL-taak te maken:

  1. Kies op de AWS Glue-console: Visuele ETL in het navigatievenster.
  2. Kies Baan creëren en Visuele ETL.
  3. Wijzig op de AWS Glue Studio-console de taaknaam in opensearch-etl.
  4. Kies Amazon S3 voor de gegevensbron en AmazonOpenSearch voor het datadoel.

Tussen de bron en het doel kunt u optioneel transformatieknooppunten invoegen. In deze oplossing maken we voor de eenvoud een taak die alleen bron- en doelknooppunten heeft.

  1. In het Eigenschappen van gegevensbron sectie, specificeer de S3-bucket waar de voorbeeldgegevens zich bevinden en kies Parket als het gegevensformaat.
  2. In het Eigenschappen van data-sink sectie, specificeer de verbinding die u in de vorige sectie hebt gemaakt (opensearch-connection).
  3. Kies de Details van de baan tabblad en in het Basiseigenschappen sectie, specificeer de IAM-rol die u eerder hebt gemaakt.
  4. Kies Bespaar om uw baan op te slaan en te kiezen lopen om de baan uit te voeren.
  5. Navigeer naar de Runs tabblad om de status van de taak te controleren. Wanneer dit succesvol is, zou de uitvoeringsstatus moeten zijn Langs.
  6. Nadat de taak succesvol is uitgevoerd, navigeert u naar OpenSearch Dashboards en logt u in op het dashboard.
  7. Kies Dashboardbeheer in het navigatiemenu.
  8. Kies Indexpatronenen kies Indexpatroon maken.
  9. Enter yellow-taxi-index For Naam indexpatroon.
  10. Kies tpep_pickup_datetime For Tijd.
  11. Kies Indexpatroon maken. Dit indexpatroon wordt gebruikt om de index te visualiseren.
  12. Kies Discover in het navigatiemenu en kies yellow-taxi-index.


U hebt nu in slechts een paar stappen een index in OpenSearch Service gemaakt en daarin gegevens vanuit Amazon S3 geladen met behulp van de native connector van AWS Glue OpenSearch Service.

Opruimen

Om te voorkomen dat er kosten in rekening worden gebracht, ruimt u de bronnen in uw AWS-account op door de volgende stappen te voltooien:

  1. Kies op de AWS Glue-console: ETL-banen in het navigatievenster.
  2. Selecteer de taak in de lijst met taken opensearch-etlen op de Acties menu, kies Verwijder.
  3. Kies op de AWS Glue-console: Gegevensverbindingen in het navigatievenster.
  4. kies opensearch-connection uit de lijst met connectoren en op de Acties menu, kies Verwijder.
  5. Kies op de IAM-console rollen op de navigatiepagina.
  6. Selecteer de rol die u voor de AWS Glue-taak hebt gemaakt en verwijder deze.
  7. Kies in de CloudFormation-console Stacks in het navigatievenster.
  8. Selecteer de stapel die u voor de S3-bucket en voorbeeldgegevens hebt gemaakt en verwijder deze.
  9. Kies op de Secrets Manager-console Secrets in het navigatievenster.
  10. Selecteer het geheim dat u hebt gemaakt en op de Acties menu, kies Verwijder.
  11. Verkort de wachttijd tot 7 dagen en plan de verwijdering.

Conclusie

De integratie van AWS Glue met OpenSearch Service voegt de krachtige mogelijkheid toe om datatransformatie uit te voeren bij integratie met OpenSearch Service voor analytische gebruiksscenario's. Hierdoor kunnen organisaties de gegevensintegratie en -analyse stroomlijnen met OpenSearch Service. Het serverloze karakter van AWS Glue betekent dat er geen infrastructuurbeheer nodig is en dat u alleen betaalt voor de bronnen die worden verbruikt terwijl uw taken worden uitgevoerd. Omdat organisaties steeds meer afhankelijk zijn van data voor hun besluitvorming, biedt deze native Spark-connector een efficiënte, kosteneffectieve en flexibele oplossing om snel te voldoen aan de behoeften op het gebied van data-analyse.


Over de auteurs

Basheer-sheriff is een Senior Solutions Architect bij AWS. Hij houdt ervan om klanten te helpen bij het oplossen van interessante problemen met behulp van nieuwe technologie. Hij is gevestigd in Melbourne, Australië, en houdt van sporten zoals voetbal en cricket.

Shunsuke Goto is een Prototyping Engineer werkzaam bij AWS. Hij werkt nauw samen met klanten om hun prototypes te bouwen en helpt klanten ook bij het bouwen van analysesystemen.

spot_img

Laatste intelligentie

spot_img