Redshiftは配列をサポートしていませんが、ソースデータベースにはRedshiftで必要ないくつかの配列列があります。
Redshiftに移行しようとする場合、このフィールドタイプはどのように処理する必要がありますか?
RedshiftはPostgreSQLの意味で配列をサポートしていませんが、確認したいJSON関数をいくつか提供しています: http://docs.aws.Amazon.com/redshift/latest/dg/json- Functions.html
配列をvarchar
列に挿入できます。
_create temporary table _test (col1 varchar(20));
insert into _test values ('[1,2,3]');
_
次に、json_extract_array_element_text()
を使用すると次のようになります。
_db=# select json_extract_array_element_text(col1, 2) from _test;
json_extract_array_element_text
---------------------------------
3
(1 row)
_
このフィールド値には表示されない特定の文字で囲みます。
例:
field = |value1|value2|value3|
そして、それを照会するときは、これを行うだけです。
where field like '%|value1|%'
また、like
クエリはコストがかかり、クラスターのパフォーマンスを低下させる可能性があることにも注意してください。