私はvertica.log
に次のエラーを参照してください。私はパーティショニングのために間違ったフィールドを選択し、hereが説明するようにWOS内のパーティションの限界に達したようERROR:あまりにも多くのデータパーティション
2016-09-01 15:30:54.007 TM Moveout:0x7f9438012440-a00000001212c3 [Txn] <INFO> Begin Txn: a00000001212c3 'Moveout: Tuple Mover'
2016-09-01 15:30:54.007 TM Moveout:0x7f9438012440-a00000001212c3 [TM] <INFO> Tuple Mover: moving out projection rosing_epg_program_events_super
2016-09-01 15:30:54.017 TM Moveout:0x7f9438012440-a00000001212c3 [EE] <INFO> (a00000001212c3) Moveout projection staging.rosing_epg_program_events_super
2016-09-01 15:30:54.017 TM Moveout:0x7f9438012440-a00000001212c3 [EE] <INFO> (a00000001212c3) TM Moveout: moving out data in WOS for proj "staging.rosing_epg_program_events_super" to epoch 3061
2016-09-01 15:30:54.017 TM Moveout:0x7f9438012440-a00000001212c3 [EE] <INFO> (a00000001212c3) Executing the moveout plan
2016-09-01 15:30:54.040 TM Moveout:0x7f9438012440-a00000001212c3 [EE] <INFO> SortManager found maxMerges 7 too small(64 MB Assigned).
2016-09-01 15:30:54.040 TM Moveout:0x7f9438012440-a00000001212c3 [EE] <INFO> After disabling optimization, maxMerges becomes 15.
2016-09-01 15:30:54.069 TM Moveout:0x7f9438012440-a00000001212c3 [Txn] <INFO> Rollback Txn: a00000001212c3 'Moveout: (Table: staging.rosing_epg_program_events) (Projection: staging.rosing_epg_program_events_super)'
2016-09-01 15:30:54.070 TM Moveout:0x7f9438012440 <LOG> @v_statistic_node0001: 00000/3298: Event Posted: Event Code:14 Event Id:261 Event Severity: Warning [4] PostedTimestamp: 2016-09-01 16:30:54.069887 ExpirationTimestamp: 2016-09-01 16:31:09.069887 EventCodeDescription: Timer Service Task Error ProblemDescription: threadShim: Too many data partitions DatabaseName: statistic Hostname: rosing-vertica.elt.stag.local
2016-09-01 15:30:54.070 TM Moveout:0x7f9438012440 <ERROR> @v_statistic_node0001: {threadShim} 54000/5060: Too many data partitions
HINT: Verify that the table partitioning expression is correct
LOCATION: handlePartitionKey, /scratch_a/release/16125/vbuild/vertica/EE/Operators/DataTarget.cpp:1478
2016-09-01 15:30:54.070 TM Moveout:0x7f9438012440 [Util] <INFO> Task 'TM Moveout' enabled
は思えます。
タスクSELECT do_tm_task('moveout');
は、次のエラーを発生させる:
Task: moveout
(Table: staging.rosing_schema_migrations) (Projection: staging.rosing_schema_migrations_super)
...
(Table: staging.rosing_epg_program_events) (Projection: staging.rosing_epg_program_events_super)
On node v_statistic_node0001:
ERROR 5060: Too many data partitions
(1 row)
誰もがこの問題を解決する方法を知っていますか?
更新:私は、この表からパーティションを削除することはできません
:
ALTER TABLE rosing_epg_program_events REMOVE PARTITIONING
このSQLは同じエラー上げるため:あまりにも多くのデータパーティションを
UPDATE 2
この問題を修正しましたwoot
答え。大いに感謝する!ここで
は、修正、それは私の手順です:
は
rosing_epg_program_events
テーブルのコピーを作成します。新しいテーブルからCREATE TABLE staging.rosing_epg_program_events2 LIKE staging.rosing_epg_program_events;
削除パーティション:から
ALTER TABLE staging.rosing_epg_program_events2 REMOVE PARTITIONING;
コピーデータを古いテーブルから新しいテーブルへ。 (!):
INSERT /*+ DIRECT */ INTO staging.rosing_epg_program_events2 SELECT * FROM staging.rosing_epg_program_events;
ドロップ古いテーブル:古いテーブルがすべて含まれているように前後に挿入されたデータは、問題を見えるようだ
DROP TABLE staging.rosing_epg_program_events;
新しいテーブルの名前を変更します。
ALTER TABLE staging.rosing_epg_program_events2 RENAME TO rosing_epg_program_events;
ランいずれの場合にも移動動作。今すぐ正常に動作します。
いずれのケースでも最後の正常なエポックを確認してください。今では、実際の値を表示:すべては今うまく働くよう
SELECT GET_LAST_GOOD_EPOCH(); SELECT * FROM epochs WHERE epoch_number = 3064; // result of previous command
は思えます。
小さなメモは、新しい表の投影が正しいことを確認してください。私は誤って 'INCLUDING PARTITIONS'と打ち込んでしまった。私は下の私の答えでそれを修正しました。 – woot
あなたは正しいです。私はテーブルのルーズセグメンテーション(すべてのフィールドでセグメンテーションが行われています)、プライマリキー制約、および 'AUTO_INCREMENT'フィールド(現在はINTフィールドのみ)です。だから、「プロジェクトを含む」を使うか、最初からテーブルを作成する方が良いでしょう。右? –
ええ、または 'export_objects(...)'を選択して名前を変更することはできますが、投影を含むのが最も簡単だと思います。 – woot