ablog

不器用で落着きのない技術者のメモ

Redshift Spectrum から Glue カタログのVARCHARにクエリすると "Invalid column type" エラーが発生する

Glue カタログの VACHAR 型はサイズパラメータ( VARCHAR (256) など)がないが、Redshift Spectrum からサイズパラメータなしで定義された VARCHAR 列をクエリすると、"Invalid column type" エラーが発生する。

Redshift Spectrum を使用して、AWS Glue データカタログテーブルから、データ 型が VARCHAR である列をクエリすると、次のようなエラーが表示されることがあります。

<column_name> - Invalid column type for column <column_name>. Type: varchar"

AWS Glue と Redshift Spectrum は、どちらも VARCHAR データ型をサポートしています。ただし、AWS Glue カタログで定義される VARCHAR データ型には、サイズパラメータ( VARCHAR (256) など)は含まれません。Redshift Spectrum が、サイズパラメータなしで定義された VARCHAR 列をクエリすると、無効な列型エラーが発生します。

Amazon Redshift で発生するデータ非互換性エラーの解決 | AWS re:Post

JSON でVARCHARのサイズパラメータを指定すると解消する。

4. STRING 列タイプを、適切なサイズパラメータを指定しながら "varchar" に変更します。例:

"Type": "varchar(1000)"
Amazon Redshift で発生するデータ非互換性エラーの解決 | AWS re:Post