我有一個例子的紅移表結構如下行:將行的值分佈在Redshift表中的多列上?
id url
12345 http://www.things.com/details/?foo=hello&bar=world&baz=John+Smith
45678 http://www.things.com/details/?foo=hello&bar=america&booz=Howard+Jones&other_field=Portugal
我想提取的URL和每個&
的?
後的一切,在=
左側的添加值一個鍵列和value列右邊的值。在給定的URL中沒有確定的數字&
。所需的輸出如下:
id key value
12345 foo hello
12345 bar world
12345 baz John+Smith
45678 foo hello
45678 bar america
45678 booz Howard+Jones
45678 other_field Portugal
我的解決方案,現在是挑一個相當高的數字和編寫與每個整數新UNION ALL
寫入相同的查詢Python腳本。我在每次迭代期間使用SPLIT_PART(SPLIT_PART(SPLIT_PART(url, '?', 2), '&', {i}), '=', 1)
和SPLIT_PART(SPLIT_PART(SPLIT_PART(url, '?', 2), '&', {i}), '=', 2)
解析出所需的字段。
Redshift是否有'regexp_split_to_table()'? –
[不,不。](http://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-functions.html) –