web-dev-qa-db-ja.com

アレイのサポートの不足に対処する方法Redshift

Redshiftは配列をサポートしていませんが、ソースデータベースにはRedshiftで必要ないくつかの配列列があります。

Redshiftに移行しようとする場合、このフィールドタイプはどのように処理する必要がありますか?

8
BestPractices

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)
_
10
moertel

このフィールド値には表示されない特定の文字で囲みます。

例:

field = |value1|value2|value3| 

そして、それを照会するときは、これを行うだけです。

where field like '%|value1|%'

また、likeクエリはコストがかかり、クラスターのパフォーマンスを低下させる可能性があることにも注意してください。