Regex SerDe - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Regex SerDe

Regex SerDe menggunakan ekspresi reguler (regex) untuk deserialisasi data dengan mengekstrak grup regex ke dalam kolom tabel.

Jika baris dalam data tidak cocok dengan regex, maka semua kolom di baris dikembalikan sebagai. NULL Jika baris cocok dengan regex tetapi memiliki lebih sedikit grup dari yang diharapkan, grup yang hilang adalah. NULL Jika baris dalam data cocok dengan regex tetapi memiliki lebih banyak kolom daripada grup di regex, kolom tambahan akan diabaikan.

Untuk informasi selengkapnya, lihat Kelas RegexSerDe dalam dokumentasi Apache Hive.

Nama pustaka serialisasi

Nama pustaka serialisasi untuk SerDe Regex adalah. org.apache.hadoop.hive.serde2.RegexSerDe Untuk informasi kode sumber, lihat Kelas RegexSerDe Dalam dokumentasi Apache.

Contoh

Contoh berikut membuat tabel dari CloudFront log menggunakan RegExSerDe. Ganti myregion masuk s3://athena-examples-myregion/cloudfront/plaintext/ dengan pengenal wilayah tempat Anda menjalankan Athena (misalnyas3://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/';