2016-05-23 7 views
1

Ich habe Avro-Dateien (komprimiert mit BZIP2) in HDFS und S3 gespeichert und ich möchte sie in Amazon Redshift laden. Der Kopierbefehl gibt einen Fehler:Amazon Rotverschiebung: laden Avro Dateien komprimiert mit BZIP2

error: Invalid AVRO file 
code:  8001 
context: Cannot init avro reader from s3 file File header contains an unknown codec 

Unterstützt Redshift komprimierte Avro-Dateien nicht?

Wenn das der Fall ist, was ist die nächstbeste Option, um diese Daten in Redshift zu laden (ohne sie ohne Kompression in Avro-Dateien umzuwandeln).

Kann ich sqoop verwenden?

Antwort

0

Redshift unterstützt komprimierte AVRO-Dateien.

Um die Datendateien zu laden, die mit gzip, lzop oder bzip2 komprimiert wurden, fügen Sie im Befehl copy die entsprechende Option hinzu: GZIP, LZOP oder BZIP2.

Auch müssen Sie AVRO-Format erwähnen und den JSON-Pfad bereitstellen. Unten ist der Code, den ich benutzt habe und es funktioniert.

copy <tablename> from '<s3 path - abc.avro.gz>' 
    credentials 'aws_access_key_id=<access-key>;aws_secret_access_key=<secret access key>' 
    format as avro '<json path for avro format>' 
    gzip; 
+0

Sie brauchen keine JSON Pfad angeben, wenn Sie nur die Datei des integrierten Schema mit - können nur „Format als avro‚auto‘“ finden Sie unter http://docs.aws. amazon.com/redshift/latest/dg/r_COPY_command_examples.html#copy-from-avro-examples-using-auto – subelsky