Creazione di un unico schema per ogni percorso di inclusione di Amazon S3 - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un unico schema per ogni percorso di inclusione di Amazon S3

Per impostazione predefinita, quando un crawler definisce tabelle per i dati archiviati in Amazon S3, considera sia la compatibilità dei dati sia la somiglianza dello schema. I fattori di compatibilità dei dati che considera includono se i dati hanno lo stesso formato (ad esempio,JSON), lo stesso tipo di compressione (ad esempioGZIP), la struttura del percorso Amazon S3 e altri attributi dei dati. La somiglianza dello schema misura il livello di somiglianza degli schemi di oggetti Amazon S3 separati.

È·possibile configurare un crawler in modo che esegua l'operazione CombineCompatibleSchemas per combinare schemi compatibili in una definizione di tabella comune quando possibile. Con questa opzione, il crawler continua a considerare la compatibilità dei dati, ma ignora la somiglianza degli schemi specifici durante la valutazione di oggetti Amazon S3 nel percorso di inclusione specificato.

Se stai configurando il crawler nella console, per combinare gli schemi seleziona l'opzione del crawler Create a single schema for each S3 path (Crea un singolo schema per ogni percorso S3).

Quando configuri il crawler utilizzandoAPI, imposta la seguente opzione di configurazione:

  • Imposta il Configuration campo con una rappresentazione in formato stringa del seguente JSON oggetto nel crawlerAPI, ad esempio:

    { "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }

Per descrivere meglio questa opzione, supponiamo di definire un crawler con un percorso di inclusione s3://bucket/table1/. Quando il crawler viene eseguito, trova due JSON file con le seguenti caratteristiche:

  • File 1: S3://bucket/table1/year=2017/data1.json

  • Contenuto del file: {“A”: 1, “B”: 2}

  • Schema: A:int, B:int

  • File 2: S3://bucket/table1/year=2018/data2.json

  • Contenuto del file{“C”: 3, “D”: 4}

  • SchemaC: int, D: int

Per impostazione predefinita, il crawler crea due tabelle, denominate year_2017 e year_2018, perché gli schemi non sono abbastanza simili. Tuttavia, se l'opzione Create a single schema for each S3 path (Crea un singolo schema per ogni percorso S3) è selezionata e se i dati sono compatibili, il crawler crea una tabella. La tabella contiene lo schema A:int,B:int,C:int,D:int e partitionKey year:string.