Amazon Redshift でテーブルの所有者を変更するにはスーパーユーザー権限が必要。
dev=> ALTER TABLE table_a OWNER TO user_a; ERROR: must be superuser to change owner
Amazon Redshift でテーブルの所有者を変更するにはスーパーユーザー権限が必要。
dev=> ALTER TABLE table_a OWNER TO user_a; ERROR: must be superuser to change owner
Redshift Spectrum で外部スキーマの作成と同時に外部データベースを作成する。
外部スキーマの作成と同時に外部データベースを作成するには、FROM DATA CATALOGステートメントで CREATE EXTERNAL DATABASE を指定して CREATE EXTERNAL SCHEMA 句を含めます。
次の例では、外部データベース spectrum_schema を使用して spectrum_db という名前の外部スキーマを作成します。create external schema spectrum_schema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' create external database if not exists;Amazon Redshift Spectrum 用の外部スキーマ - Amazon Redshift
次の データ型 がサポートされています。
CREATE EXTERNAL TABLE - Amazon Redshift
- SMALLINT (INT2)
- INTEGER (INT、INT4)
- BIGINT (INT8)
- DECIMAL (NUMERIC)
- REAL (FLOAT4)
- DOUBLE PRECISION (FLOAT8)
- BOOLEAN (BOOL)
- CHAR (CHARACTER)
- VARCHAR (CHARACTER VARYING)
- VARBYTE (CHARACTER VARYING) – Parquet および ORC データファイルで、パーティション化されていないテーブルでのみ使用できます。
- DATE – テキスト、Parquet、または ORC データファイルでのみ使用できます。またはパーティション列としてのみ使用できます。
- TIMESTAMP
Redshift の STL テーブルのクエリID(query列)と SYS ビューのクエリID(query_id)は別の値のため、クエリIDで結合することはできない。トランザクションID(STLとSYSのトランザクションIDが 1:1 の場合)で結合することができる。
Redshift の STL テーブルと SYS ビュー - ablog
STL_QUERY と SYS_QUERY_HISTORY を CSV(|区切り)に出力したファイルを transaction_id(xid) で結合してして、query と query_id の対応表を作成したメモ。
perl -F'\|' -lane 'print qq/$F[3]|$F[4]/' STL_QUERY.csv|sort -u > STL_QUERY_qid_xid.csv
perl -F'\|' -lane 'print qq/$F[1]|$F[3]/' SYS_QUERY_HISTORY.csv|sort -u > SYS_QUERY_HISTORY_qid_xid.csv
join -t'|' -1 2 -2 2 SYS_QUERY_HISTORY_qid_xid.csv STL_QUERY_qid_xid.csv > query_id_query.csv
Redshift に Data API でアクセスする場合、Internet Gateway や Public Access 許可がなくても、必要な IAM 権限があればアクセスできる。
DataAPIでは、AWSのIAMによる認証でクラスタにクエリを投げられるというのがウリなので、 出来るだけ外からは接続できない場所にクラスタを立てます。 具体的には
Internet Gatewayなし
パブリックアクセスの許可なし
セキュリティグループはデフォルト設定
インバウンドは全てクローズ
という孤立した状況のクラスタを立ててみました。(中略)
LambdaからDataAPIを使ってRedshiftでクエリを実行してみました。 従来はLambdaからRedshiftへクエリを実行したい場合、 Lambda関数はVPC内に設置しなければならない場合が多く、 そのLambdaから他のサービスに接続するような際にはVPCエンドポイントを準備しなければならないなど、 いくつか面倒なこともありました。 DataAPIによってLambdaとRedshiftの繋がりがより疎になり、シンプルな構成にすることができました!
サブネットもセキュリティグループも考慮不要!Lambda関数からData API for Redshiftでクエリ実行してみた。 | DevelopersIO