データを挿入するために働いていないappendコマンドを変更します。 そこで私はs3データをステージテーブルにコピーし、alter appendコマンドを使用して実際のテーブルにステージテーブルデータを追加する戦略を選択しました。 私の場合。AWS赤方偏移、私は定期的に赤方偏移のテーブルにレコードを挿入する必要が
ステージテーブル - URL_DATA_TEMP
実際のテーブル - URL_METADATA
私は同じコマンドを使用してのみテーブル名を変更する作成した今、両方のテーブル。 例:
CREATE TABLE _360_model.URL_METADATA
(
URL VARCHAR(8000),
URL_MD5 VARCHAR(300),
INDEX VARCHAR(200),
ASSET_TYPE VARCHAR(200)
);
CREATE TABLE _360_model.URL_DATA_TEMP
(
URL VARCHAR(8000),
URL_MD5 VARCHAR(300),
INDEX VARCHAR(200),
ASSET_TYPE VARCHAR(200)
);
はまだ私は、コマンドを追加し、次の使用しようと、それは文句を言います。
alter table _360_model.URL_METADATA append from _360_model.URL_DATA_TEMP;
error: Columns don't match.
code: 8001
context: Column "asset_type" has different attributes in the source table
and the target table. Columns with the same name must have the same
attributes in both tables.
私はテーブルを作成するためにほとんど同じコマンドを使用したとき、どのように列構造が異なる可能性があるのか理解できません。
列名INDEXスポイリングのですか? INDEXは予約語ですが、引用符で囲まれている可能性がありますか? –
列のコーディング、配布キーなどが同一であることを確認しましたか? ( 'URL_METADATA'、 'URL_DATA_TEMP')でpg_table_defテーブル名から "NOTNULL"、タイプ、 エンコーディング、distkey、ソートキーとして(タイプ)をトリム、テーブル、 "列" として選択トリム(テーブル名)を実行してみてください。それらを比較する。 – Nathan
あなたのクエリは私にとってはうまくいくので、ここで述べたのと同じ方法でテーブルを作成していることを確認する必要があります。 – Yankee