Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Avro SerDe

フォーカスモード
Avro SerDe - Amazon Athena

Avro SerDe を使用して、Avro データから Athena テーブルを作成します。

シリアル化ライブラリ名

Avro SerDe のシリアル化ライブラリ名は org.apache.hadoop.hive.serde2.avro.AvroSerDe です。技術情報については、Apache ドキュメントの「AvroSerDe」を参照してください。

Avro SerDe を使用する

セキュリティ上の理由から、At​​hena はテーブルスキーマを指定するために avro.schema.url を使用することをサポートしていません。代わりに avro.schema.literal を使用してください。

Avro 形式のデータからスキーマを抽出するには、インストールされている Avro リリースの java サブディレクトリにある Apache avro-tools-<version>.jar ファイルを使用します。次の例のように、getschema パラメータを使用して、WITH SERDEPROPERTIES ステートメントで使用できるスキーマを返します。

java -jar avro-tools-1.8.2.jar getschema my_data.avro

Avro をダウンロードする場合は、Apache Avro リリースを参照してください。Apache Avro Tools を直接ダウンロードする場合は、Apache Avro tools Maven リポジトリを参照してください。

スキーマを取得したら、CREATE TABLE ステートメントを使用して、Amazon S3 に保存されている基盤となる Avro データに基づいて Athena テーブルを作成します。CREATE TABLE ステートメントで Avro SerDe を指定するには、ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' を使用します。次の例のように、WITH SERDEPROPERTIES 句を使用してスキーマを指定します。

注記

s3://athena-examples-myregion/path/to/data/myregion を、Athena が実行されるリージョンの識別子 (s3://athena-examples-us-west-1/path/to/data/ など) に置き換えます。

CREATE EXTERNAL TABLE flights_avro_example ( yr INT, flightdate STRING, uniquecarrier STRING, airlineid INT, carrier STRING, flightnum STRING, origin STRING, dest STRING, depdelay INT, carrierdelay INT, weatherdelay INT ) PARTITIONED BY (year STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' WITH SERDEPROPERTIES ('avro.schema.literal'=' { "type" : "record", "name" : "flights_avro_subset", "namespace" : "default", "fields" : [ { "name" : "yr", "type" : [ "null", "int" ], "default" : null }, { "name" : "flightdate", "type" : [ "null", "string" ], "default" : null }, { "name" : "uniquecarrier", "type" : [ "null", "string" ], "default" : null }, { "name" : "airlineid", "type" : [ "null", "int" ], "default" : null }, { "name" : "carrier", "type" : [ "null", "string" ], "default" : null }, { "name" : "flightnum", "type" : [ "null", "string" ], "default" : null }, { "name" : "origin", "type" : [ "null", "string" ], "default" : null }, { "name" : "dest", "type" : [ "null", "string" ], "default" : null }, { "name" : "depdelay", "type" : [ "null", "int" ], "default" : null }, { "name" : "carrierdelay", "type" : [ "null", "int" ], "default" : null }, { "name" : "weatherdelay", "type" : [ "null", "int" ], "default" : null } ] } ') STORED AS AVRO LOCATION 's3://athena-examples-myregion/flight/avro/';

テーブルに対して MSCK REPAIR TABLE ステートメントを実行し、パーティションのメタデータを更新します。

MSCK REPAIR TABLE flights_avro_example;

出発の合計数で上位 10 の出発都市をクエリします。

SELECT origin, count(*) AS total_departures FROM flights_avro_example WHERE year >= '2000' GROUP BY origin ORDER BY total_departures DESC LIMIT 10;
注記

フライトテーブルデータは、米国運輸省の運輸統計局が提供する Flights からのものです。オリジナルを白黒に変換しています。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.