Zephyrnet-logo

Gebruik AWS Glue ETL om samenvoegingen, partitie-evolutie en schema-evolutie uit te voeren op Apache Iceberg | Amazon-webservices

Datum:

Omdat bedrijven steeds grotere hoeveelheden gegevens uit verschillende bronnen verzamelen, moeten de structuur en organisatie van die gegevens in de loop van de tijd vaak veranderen om aan de veranderende analytische behoeften te voldoen. Het wijzigen van schema- en tabelpartities in traditionele datameren kan echter een ontwrichtende en tijdrovende taak zijn, waarbij volledige tabellen moeten worden hernoemd of opnieuw moeten worden gemaakt en grote datasets opnieuw moeten worden verwerkt. Dit belemmert de wendbaarheid en de tijd tot inzicht.

Schema-evolutie maakt het toevoegen, verwijderen, hernoemen of wijzigen van kolommen mogelijk zonder bestaande gegevens te herschrijven. Dit is van cruciaal belang voor snel evoluerende ondernemingen om datastructuren uit te breiden om nieuwe gebruiksscenario's te ondersteunen. Een e-commercebedrijf kan bijvoorbeeld nieuwe demografische klantkenmerken of bestelstatusvlaggen toevoegen om de analyses te verrijken. Apache-ijsberg beheert deze schemawijzigingen op een achterwaarts compatibele manier via zijn innovatieve metadatatabel-evolutiearchitectuur.

Op dezelfde manier maakt partitie-evolutie het naadloos toevoegen, verwijderen of splitsen van partities mogelijk. Een e-commercemarktplaats kan bijvoorbeeld in eerste instantie de bestelgegevens per dag verdelen. Naarmate de bestellingen zich opstapelen en het opvragen per dag inefficiënt wordt, kunnen deze worden opgesplitst in dag- en klant-ID-partities. Met tabelpartitionering worden grote gegevenssets op de meest efficiënte manier georganiseerd voor de prestaties van query's. Iceberg geeft bedrijven de flexibiliteit om partities stapsgewijs aan te passen in plaats van vervelende herbouwprocedures te vereisen. Nieuwe partities kunnen op een volledig compatibele manier worden toegevoegd zonder downtime of het herschrijven van bestaande gegevensbestanden.

Dit bericht laat zien hoe je Iceberg kunt benutten, Amazon eenvoudige opslagservice (Amazone S3), AWS lijm, AWS Lake-formatie en AWS Identiteits- en toegangsbeheer (IAM) om een ​​transactioneel datameer te implementeren dat een naadloze evolutie ondersteunt. Door pijnloze schema- en partitieaanpassingen mogelijk te maken naarmate data-inzichten evolueren, kunt u profiteren van de toekomstbestendige flexibiliteit die nodig is voor zakelijk succes.

Overzicht van de oplossing

In ons voorbeeld verwerkt een fictief groot e-commercebedrijf elke dag duizenden bestellingen. Wanneer bestellingen worden ontvangen, bijgewerkt, geannuleerd, verzonden, afgeleverd of geretourneerd, worden de wijzigingen aangebracht in hun lokale systeem en moeten deze wijzigingen worden gerepliceerd naar een S3-datameer, zodat data-analisten query's kunnen uitvoeren. Amazone Athene. De wijzigingen kunnen ook schema-updates bevatten. Vanwege de beveiligingsvereisten van verschillende organisaties moeten ze via Lake Formation een fijnmazige toegangscontrole voor de analisten beheren.

Het volgende diagram illustreert de oplossingsarchitectuur.

De oplossingsworkflow omvat de volgende belangrijke stappen:

  1. Gegevens opnemen van on-premises naar een Dropzone-locatie met behulp van een pijplijn voor gegevensopname.
  2. Voeg de gegevens van de Dropzone-locatie samen met Iceberg met behulp van AWS Glue.
  3. Vraag de gegevens op met Athena.

Voorwaarden

Voor deze walkthrough moet u aan de volgende vereisten voldoen:

Zet de infrastructuur op met AWS CloudFormation

Om uw infrastructuur te creëren met een AWS CloudFormatie sjabloon, voert u de volgende stappen uit:

  1. Log in als beheerder op uw AWS-account.
  2. Open de AWS CloudFormation-console.
  3. Kies Start Stack:
  4. Voor Stack naam, voer een naam in (voor dit bericht, ijsbergdemo1).
  5. Kies Volgende.
  6. Geef informatie op voor de volgende parameters:
    1. DatalakeUserName
    2. DatalakeUserPassword
    3. DatabaseName
    4. TableName
    5. DatabaseLFTagKey
    6. DatabaseLFTagValue
    7. TableLFTagKey
    8. TableLFTagValue
  7. Kies Volgende.
  8. Kies Volgende weer.
  9. In het Beoordeling sectie, controleer de waarden die u hebt ingevoerd.
  10. kies Ik erken dat AWS CloudFormation IAM-bronnen met aangepaste namen kan maken En kies Verzenden.

Binnen een paar minuten verandert de stapelstatus in CREATE_COMPLETE.

U kunt naar de Tabblad Uitgangen van de stapel om alle bronnen te zien die deze heeft ingericht. De bronnen worden voorafgegaan door de stapelnaam die u heeft opgegeven (voor dit bericht icebergdemo1).

Maak een ijsbergtabel met Lambda en verleen toegang met Lake Formation

Voer de volgende stappen uit om een ​​ijsbergtabel te maken en er toegang toe te verlenen:

  1. Navigeer naar de Resources tabblad van de CloudFormation-stack icebergdemo1 en zoek naar logische ID met de naam LambdaFunctionIceberg.
  2. Kies de hyperlink van de bijbehorende fysieke ID.

U wordt doorgestuurd naar de Lambda-functie icebergdemo1-Lambda-Create-Iceberg-and-Grant-access.

  1. Op de Configuratie tabblad, kies Omgevingsvariabelen in het linkerdeelvenster.
  1. Op de Code tabblad kunt u de functiecode inspecteren.

De functie maakt gebruik van de AWS SDK voor Python (Boto3) API's om de bronnen in te richten. Het neemt de ingerichte rol van Data Lake-beheerder over om de volgende taken uit te voeren:

  • Grant DATA_LOCATION_ACCESS toegang tot de data lake-beheerdersrol op de geregistreerde data lake-locatie
  • creëren Tags voor meerformatie (LF-Tags)
  • Maak een database in de AWS Glue Data Catalog met behulp van AWS Glue create_database API
  • Wijs LF-Tags toe aan de database
  • Verleen DESCRIBE-toegang tot de database met behulp van LF-Tags aan de data lake IAM-gebruiker en AWS Glue ETL IAM-rol
  • Maak een ijsbergtafel met behulp van de AWS Glue maak_tabel API:
response_create_table = glue_client.create_table(
DatabaseName= 'icebergdb1',
OpenTableFormatInput= { 
 'IcebergInput': { 
 'MetadataOperation': 'CREATE',
 'Version': '2'
 }
},
TableInput={
    'Name': ‘ecomorders’,
    'StorageDescriptor': {
        'Columns': [
            {'Name': 'ordernum', 'Type': 'int'},
            {'Name': 'sku', 'Type': 'string'},
            {'Name': 'quantity','Type': 'int'},
            {'Name': 'category','Type': 'string'},
            {'Name': 'status','Type': 'string'},
            {'Name': 'shipping_id','Type': 'string'}
        ],  
        'Location': 's3://icebergdemo1-s3bucketiceberg-vthvwwblrwe8/iceberg/'
    },
    'TableType': 'EXTERNAL_TABLE'
    }
)

  • Wijs LF-Tags toe aan de tafel
  • Verleen DESCRIBE en SELECT op de Iceberg-tabel LF-Tags voor de data lake IAM-gebruiker
  • Verleen ALL, DESCRIBE, SELECT, INSERT, DELETE en ALTER toegang tot de Iceberg-tabel LF-Tags voor de AWS Glue ETL IAM-rol
  1. Op de test tabblad, kies test om de functie uit te voeren.

Wanneer de functie voltooid is, ziet u de melding “Functie uitvoeren: geslaagd.”

Lake Formation helpt u gegevens centraal te beheren, beveiligen en wereldwijd te delen voor analyse en machine learning. Met Lake Formation kunt u een fijnmazig toegangscontrole beheren voor uw data lake-gegevens op Amazon S3 en de bijbehorende metadata in de Data Catalog.

Om een ​​Amazon S3-locatie toe te voegen als Iceberg-opslag in uw data lake, registreer de locatie met de vorming van meren. Vervolgens kunt u Lake Formation-machtigingen gebruiken voor gedetailleerd toegangscontrole tot de Data Catalog-objecten die naar deze locatie verwijzen, en naar de onderliggende gegevens op de locatie.

De CloudFormation-stack registreerde de data lake-locatie.

Toestemmingen voor gegevenslocatie in Lake Formation kunnen opdrachtgevers Data Catalog-bronnen maken en wijzigen die verwijzen naar de aangewezen geregistreerde Amazon S3-locaties. Toestemmingen voor gegevenslocatie werken als aanvulling op Lake Formation gegevensrechten om informatie in uw data lake te beveiligen.

Op tags gebaseerde toegangscontrole op Lake Formation (LF-TBAC) is een autorisatiestrategie die machtigingen definieert op basis van attributen. In Lake Formation worden deze attributen LF-Tags genoemd. U kunt LF-Tags koppelen aan Data Catalog-resources, Lake Formation-principals en tabelkolommen. U kunt machtigingen voor Lake Formation-resources toewijzen en intrekken met behulp van deze LF-Tags. Lake Formation staat bewerkingen op deze resources toe wanneer de tag van de opdrachtgever overeenkomt met de resourcetag.

Controleer de ijsbergtabel vanaf de Lake Formation-console

Voer de volgende stappen uit om de ijsbergtabel te verifiëren:

  1. Kies op de Lake Formation-console databases in het navigatievenster.
  2. Open de detailpagina voor icebergdb1.

U kunt de bijbehorende database LF-Tags zien.

  1. Kies Tafels in het navigatievenster.
  2. Open de detailpagina voor ecomorders.

In het Tabeldetails sectie kunt u het volgende waarnemen:

  • Tabelformaat wordt weergegeven als Apache-ijsberg
  • Tafelbeheer wordt weergegeven als Beheerd door Data Catalog
  • Locatie geeft de data lake-locatie van de ijsbergtabel weer

In het LF-tags sectie kunt u de bijbehorende tabel LF-Tags bekijken.

In het Tabeldetails sectie, uitbreiden Geavanceerde tabeleigenschappen om het volgende te bekijken:

  • metadata_location verwijst naar de locatie van het metagegevensbestand van de ijsbergtabel
  • table_type wordt weergegeven als ICEBERG

Op de Schema Op het tabblad kunt u de kolommen bekijken die zijn gedefinieerd in de ijsbergtabel.

Integreer Iceberg met de AWS Glue Data Catalog en Amazon S3

Iceberg houdt individuele gegevensbestanden bij in een tabel in plaats van in mappen. Wanneer er een expliciete commit op tafel ligt, maakt Iceberg gegevensbestanden en voegt deze toe aan de tabel. Iceberg onderhoudt de tabelstatus in metadatabestanden. Elke wijziging in de tabelstatus creëert een nieuw metadatabestand dat de oudere metadata atomair vervangt. Metagegevensbestanden houden het tabelschema, de partitieconfiguratie en andere eigenschappen bij.

Iceberg vereist dat bestandssystemen die de bewerkingen ondersteunen compatibel zijn met objectstores zoals Amazon S3.

Iceberg maakt momentopnamen voor de tabelinhoud. Elke momentopname is een complete set gegevensbestanden in de tabel op een bepaald tijdstip. Gegevensbestanden in momentopnamen worden opgeslagen in een of meer manifestbestanden die een rij bevatten voor elk gegevensbestand in de tabel, de partitiegegevens en de bijbehorende statistieken.

Het volgende diagram illustreert deze hiërarchie.

Wanneer u een ijsbergtabel maakt, wordt eerst de metagegevensmap gemaakt en een metagegevensbestand in de metagegevensmap. De gegevensmap wordt gemaakt wanneer u gegevens in de Iceberg-tabel laadt.

Inhoud van het Iceberg-metadatabestand

Het Iceberg-metagegevensbestand bevat veel informatie, waaronder de volgende:

  • formaat-versie –Versie van de ijsbergtafel
  • Locatie – Amazon S3-locatie van de tafel
  • schema's – Naam en gegevenstype van alle kolommen in de tabel
  • partitie-specificaties – Gepartitioneerde kolommen
  • sorteervolgorde – Sorteervolgorde van kolommen
  • vastgoed – Tabeleigenschappen
  • huidige momentopname-id – Huidige momentopname
  • scheidsrechters – Tabelreferenties
  • snapshots – Lijst met snapshots, elk met de volgende informatie:
    • volgnummer – Volgnummer van snapshots in chronologische volgorde (het hoogste nummer vertegenwoordigt de huidige snapshot, 1 voor de eerste snapshot)
    • momentopname-id – Momentopname-ID
    • tijdstempel-ms – Tijdstempel waarop de momentopname is vastgelegd
    • beknopte versie – Samenvatting van de vastgelegde wijzigingen
    • manifest-lijst – Lijst met manifesten; deze bestandsnaam begint met snap-<snapshot-id >
  • schema-id – Volgnummer van het schema in chronologische volgorde (het hoogste getal vertegenwoordigt het huidige schema)
  • momentopname-log – Lijst met momentopnamen in chronologische volgorde
  • metadata-log – Lijst met metadatabestanden in chronologische volgorde

Het metadatabestand bevat alle historische wijzigingen in de gegevens en het schema van de tabel. Het rechtstreeks bekijken van de inhoud van het metabestandbestand kan een tijdrovende taak zijn. Gelukkig kunt u de IJsbergmetadata met behulp van Athena.

IJsbergframework in AWS Glue

AWS Glue 4.0 ondersteunt Iceberg-tabellen geregistreerd bij Lake Formation. In de AWS Glue ETL-taken hebt u de volgende code nodig schakel het Iceberg-framework in:

from awsglue.context import GlueContext
from pyspark.context import SparkContext
from pyspark.conf import SparkConf
aws_account_id = boto3.client('sts').get_caller_identity().get('Account')

args = getResolvedOptions(sys.argv, ['JOB_NAME','warehouse_path']
    
# Set up configuration for AWS Glue to work with Apache Iceberg
conf = SparkConf()
conf.set("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")
conf.set("spark.sql.catalog.glue_catalog", "org.apache.iceberg.spark.SparkCatalog")
conf.set("spark.sql.catalog.glue_catalog.warehouse", args['warehouse_path'])
conf.set("spark.sql.catalog.glue_catalog.catalog-impl", "org.apache.iceberg.aws.glue.GlueCatalog")
conf.set("spark.sql.catalog.glue_catalog.io-impl", "org.apache.iceberg.aws.s3.S3FileIO")
conf.set("spark.sql.catalog.glue_catalog.glue.lakeformation-enabled", "true")
conf.set("spark.sql.catalog.glue_catalog.glue.id", aws_account_id)

sc = SparkContext(conf=conf)
glueContext = GlueContext(sc)
spark = glueContext.spark_session

Voor lees-/schrijftoegang tot onderliggende gegevens werd, naast Lake Formation-machtigingen, de AWS Glue IAM-rol toegekend om de AWS Glue ETL-taken uit te voeren meervorming: GetDataAccess IAM-toestemming. Met deze toestemming willigt Lake Formation het verzoek in voor tijdelijke inloggegevens voor toegang tot de gegevens.

De CloudFormation-stack heeft de vier AWS Glue ETL-taken voor u ingericht. De naam van elke taak begint met uw stapelnaam (icebergdemo1). Voer de volgende stappen uit om de vacatures te bekijken:

  1. Log in als beheerder op uw AWS-account.
  2. Kies op de AWS Glue-console: ETL-banen in het navigatievenster.
  3. Zoek naar vacatures met icebergdemo1 in de naam.

Voeg gegevens uit Dropzone samen met de Iceberg-tabel

Voor ons gebruik neemt het bedrijf dagelijks de gegevens van hun e-commercebestellingen op van hun lokale locatie naar een Amazon S3 Dropzone-locatie. De CloudFormation-stack laadde drie bestanden met voorbeeldbestellingen gedurende drie dagen, zoals weergegeven in de volgende afbeeldingen. U ziet de gegevens op de Dropzone-locatie s3://icebergdemo1-s3bucketdropzone-kunftrcblhsk/data.

De AWS Glue ETL-taak icebergdemo1-GlueETL1-merge wordt dagelijks uitgevoerd om de gegevens samen te voegen met de ijsbergtabel. Het heeft de volgende logica om de gegevens op Iceberg toe te voegen of bij te werken:

  • Maak een Spark DataFrame op basis van invoergegevens:
df = spark.read.format(dropzone_dataformat).option("header", True).load(dropzone_path)
df = df.withColumn("ordernum", df["ordernum"].cast(IntegerType())) 
    .withColumn("quantity", df["quantity"].cast(IntegerType()))
df.createOrReplaceTempView("input_table")

  • Voor een nieuwe bestelling voegt u deze toe aan de tabel
  • Als de tafel een overeenkomende volgorde heeft, update dan de status en shipping_id:
stmt_merge = f"""
    MERGE INTO glue_catalog.{database_name}.{table_name} AS t
    USING input_table AS s 
    ON t.ordernum= s.ordernum
    WHEN MATCHED 
            THEN UPDATE SET 
                t.status = s.status,
                t.shipping_id = s.shipping_id
    WHEN NOT MATCHED THEN INSERT *
    """
spark.sql(stmt_merge)

Voer de volgende stappen uit om de AWS Glue-samenvoegtaak uit te voeren:

  1. Kies op de AWS Glue-console: ETL-banen in het navigatievenster.
  2. Selecteer de ETL-taak icebergdemo1-GlueETL1-merge.
  3. Op de Acties vervolgkeuzemenu, kies Uitvoeren met parameters.
  4. Op de Parameters uitvoeren pagina, ga naar Taakparameters.
  5. Voor de --dropzone_path parameter, geef de S3-locatie van de invoergegevens op (icebergdemo1-s3bucketdropzone-kunftrcblhsk/data/merge1).
  6. Voer de taak uit om alle bestellingen toe te voegen: 1001, 1002, 1003 en 1004.
  7. Voor de --dropzone_path parameter, wijzig de S3-locatie naar icebergdemo1-s3bucketdropzone-kunftrcblhsk/data/merge2.
  8. Voer de taak opnieuw uit om orders 2001 en 2002 toe te voegen en orders 1001, 1002 en 1003 bij te werken.
  9. Voor de --dropzone_path parameter, wijzig de S3-locatie naar icebergdemo1-s3bucketdropzone-kunftrcblhsk/data/merge3.
  10. Voer de taak opnieuw uit om order 3001 toe te voegen en orders 1001, 1003, 2001 en 2002 bij te werken.

Ga naar de gegevensmap van de tabel om de gegevensbestanden te bekijken die door Iceberg zijn geschreven toen u de gegevens in de tabel hebt samengevoegd met behulp van de Glue ETL-taak icebergdemo1-GlueETL1-merge.

Query Iceberg met behulp van Athena

De CloudFormation-stack heeft de IAM-gebruiker iceberguser1 gemaakt, die leestoegang heeft tot de Iceberg-tabel met behulp van LF-Tags. Om Iceberg te bevragen met Athena via deze gebruiker, voert u de volgende stappen uit:

  1. Inloggen als iceberguser1 aan de AWS-beheerconsole.
  2. Kies op de Athena-console Werkgroepen in het navigatievenster.
  3. Zoek de werkgroep die CloudFormation heeft ingericht (icebergdemo1-workgroup)
  4. Controleer versie 3 van de Athena-motor.

De Athena-motorversie 3 ondersteunt IJsberg bestandsformaten, inclusief Parquet, ORC en Avro.

  1. Ga naar de Athena-queryeditor.
  2. Kies de werkgroep ijsbergdemo1-werkgroep in het vervolgkeuzemenu.
  3. Voor Database, kiezen icebergdb1. Je zult de tafel zien ecomorders.
  4. Voer de volgende query uit om de gegevens in de ijsbergtabel te bekijken:
    SELECT * FROM "icebergdb1"."ecomorders" ORDER BY ordernum ;

  5. Voer de volgende query uit om de huidige partities van de tabel te bekijken:
    DESCRIBE icebergdb1.ecomorders ;

Partition-spec beschrijft hoe de tabel is gepartitioneerd. In dit voorbeeld zijn er geen gepartitioneerde velden omdat u geen partities in de tabel hebt gedefinieerd.

Evolutie van ijsbergpartities

Mogelijk moet u uw partitiestructuur wijzigen; bijvoorbeeld als gevolg van trendveranderingen van algemene zoekpatronen in downstream-analyses. Een wijziging van de partitiestructuur voor traditionele tabellen is een aanzienlijke operatie waarvoor een volledige gegevenskopie nodig is.

Iceberg maakt dit eenvoudig. Wanneer u de partitiestructuur op Iceberg wijzigt, hoeft u de gegevensbestanden niet te herschrijven. De oude gegevens die met eerdere partities zijn geschreven, blijven ongewijzigd. Nieuwe gegevens worden geschreven met behulp van de nieuwe specificaties in een nieuwe lay-out. Metagegevens voor elk van de partitieversies worden afzonderlijk bewaard.

Laten we de partitieveldcategorie toevoegen aan de Iceberg-tabel met behulp van de AWS Glue ETL-taak icebergdemo1-GlueETL2-partition-evolution:

ALTER TABLE glue_catalog.icebergdb1.ecomorders
    ADD PARTITION FIELD category ;

Voer de ETL-taak uit op de AWS Glue-console icebergdemo1-GlueETL2-partition-evolution. Wanneer de taak is voltooid, kunt u partities opvragen met Athena.

DESCRIBE icebergdb1.ecomorders ;

SELECT * FROM "icebergdb1"."ecomorders$partitions";

U kunt de categorie van het partitieveld zien, maar de partitiewaarden zijn nul. Er zijn geen nieuwe gegevensbestanden in de gegevensmap, omdat partitie-evolutie een metagegevensbewerking is en gegevensbestanden niet herschrijft. Wanneer u gegevens toevoegt of bijwerkt, ziet u dat de overeenkomstige partitiewaarden worden ingevuld.

Evolutie van het ijsbergschema

Iceberg ondersteunt interne tafelevolutie. Jij kan een tabelschema ontwikkelen net als SQL. IJsberg-schema-updates zijn wijzigingen in de metagegevens, dus er hoeven geen gegevensbestanden te worden herschreven om de schema-evolutie uit te voeren.

Voer de ETL-taak uit om de evolutie van het ijsbergschema te verkennen icebergdemo1-GlueETL3-schema-evolution via de AWS Glue-console. De taak voert de volgende SparkSQL-instructies uit:

ALTER TABLE glue_catalog.icebergdb1.ecomorders
    ADD COLUMNS (shipping_carrier string) ;

ALTER TABLE glue_catalog.icebergdb1.ecomorders
    RENAME COLUMN shipping_id TO tracking_number ;

ALTER TABLE glue_catalog.icebergdb1.ecomorders
    ALTER COLUMN ordernum TYPE bigint ;

Voer in de Athena-query-editor de volgende query uit:

SELECT * FROM "icebergdb1"."ecomorders" ORDER BY ordernum asc ;

U kunt de schemawijzigingen in de ijsbergtabel verifiëren:

  • Er is een nieuwe kolom toegevoegd genaamd shipping_carrier
  • De kolom shipping_id is hernoemd naar tracking_number
  • Het gegevenstype van de kolom ordernum is veranderd van int naar bigint
    DESCRIBE icebergdb1.ecomorders;

Positionele update

De gegevens binnen tracking_number bevat de vervoerder, samengevoegd met het trackingnummer. Laten we aannemen dat we deze gegevens willen splitsen om de vervoerder in de shipping_carrier veld en het trackingnummer in het tracking_number veld.

Voer de ETL-taak uit op de AWS Glue-console icebergdemo1-GlueETL4-update-table. De taak voert de volgende SparkSQL-instructie uit om de tabel bij te werken:

UPDATE glue_catalog.icebergdb1.ecomorders
SET shipping_carrier = substring(tracking_number,1,3),
    tracking_number = substring(tracking_number,4,50)
WHERE tracking_number != '' ;

Voer een query uit op de Iceberg-tabel om de bijgewerkte gegevens te verifiëren tracking_number en shipping_carrier.

SELECT * FROM "icebergdb1"."ecomorders" ORDER BY ordernum ;

Nu de gegevens in de tabel zijn bijgewerkt, zouden de partitiewaarden voor categorie moeten zijn ingevuld:

SELECT * FROM "icebergdb1"."ecomorders$partitions"
ORDER BY partition;

Opruimen

Om toekomstige kosten te voorkomen, ruimt u de bronnen op die u heeft gemaakt:

  1. Open op de Lambda-console de detailpagina voor de functie icebergdemo1-Lambda-Create-Iceberg-and-Grant-access.
  2. In het Omgevingsvariabelen sectie, kies de sleutel Task_To_Perform en update de waarde naar CLEANUP.
  3. Voer de functie uit, waardoor de database, de tabel en de bijbehorende LF-Tags worden verwijderd.
  4. Verwijder op de AWS CloudFormation-console de stack icebergdemo1.

Conclusie

In dit bericht heb je een Iceberg-tabel gemaakt met behulp van de AWS Glue API en Lake Formation gebruikt om de toegang tot de Iceberg-tabel in een transactioneel datameer te controleren. Met AWS Glue ETL-taken voegde u gegevens samen in de Iceberg-tabel en voerde u schema-evolutie en partitie-evolutie uit zonder de Iceberg-tabel te herschrijven of opnieuw te maken. Met Athena hebt u de gegevens en metagegevens van de ijsberg opgevraagd.

Op basis van de concepten en demonstraties uit dit bericht kunt u nu een transactioneel datameer in een onderneming bouwen met behulp van Iceberg, AWS Glue, Lake Formation en Amazon S3.


Over de auteur

Satya Adimula is een Senior Data Architect bij AWS, gevestigd in Boston. Met meer dan twintig jaar ervaring in data en analytics helpt Satya organisaties om op grote schaal zakelijke inzichten uit hun data te halen.

spot_img

Laatste intelligentie

spot_img