hiveのparse_urlについてまとめてみた


はじめに

サイトのアクセス解析をするときに、urlを解析して、ドメインやクエリ文字列を使用したい場合がある。
そのときによく使うparse_urlという関数についてまとめてみた。

HOST

ドメインが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST')
⇒ domain1.com

PATH

ドメインより後ろのPathが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH')
⇒ /path1/p.php

QUERY

クエリ文字列が取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY')
⇒ k1=v1&k2=v2

keyを指定すればその文字列を取得することもできる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1')
⇒ v1

TreasureDataであれば以下の関数を利用してデコードをすることもできる
td_url_decode(parse_url('http://domain1.com/path1/p.php?k1=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a&k2=v2#Ref1', 'QUERY', 'k1'))
⇒ あいうえお

REF

ラベルが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'REF')
⇒ Ref1

PROTOCOL

プロトコルが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PROTOCOL')
⇒ http

FILE

PATH + QUERYが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'FILE')
⇒ /path1/p.php?k1=v1&k2=v2