正規表現 SerDe - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

正規表現 SerDe

Regex SerDe は正規表現 (regex) を使用して正規表現グループをテーブル列に抽出してデータを逆シリアル化します。

データ内の行が正規表現と一致しない場合、その行内のすべての列が NULL として返されます。行が正規表現と一致するが、予想よりもグループが少ない場合、欠落しているグループは NULL です。データ内の行が正規表現と一致するが、正規表現内のグループよりも多くの列がある場合、追加の列は無視されます。

詳細については、Apache Hive ドキュメントの「クラス」を参照してください。 RegexSerDe

SerDe 名前

RegexSerDe

ライブラリ名

RegexSerDe

次の例では、 CloudFront を使用してログからテーブルを作成します RegExSerDe。s3://athena-examples-myregion/cloudfront/plaintext/myregion を、Athena が実行されるリージョンの識別子 (s3://athena-examples-us-west-1/cloudfront/plaintext/ など) に置き換えます。

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';