翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
正規表現 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/';