ソースからターゲットへのデータの毎日のロードを必要とする 400 万のレコードがあり、毎日切り捨てを行っています。毎日 400 万レコードのデータをロードするテーブルが 10 個ほどあるため、9 時間ほどかかります。パフォーマンスを向上させる方法を教えてください。ありがとう
質問する
1317 次
1 に答える
0
次の 2 つのオプションがあります。
- PDI で使用可能な MY SQL バルク ローダー ステップを使用します。これにより、データの読み込みが確実に高速化されます。
簡単な JDBC 接続設定を使用することで、速度を上げることができます。
useServerPrepStmts=false rewriteBatchedStatements=true useCompression=true
これらのオプションは、接続時に PDI に入力する必要があります。接続をダブルクリックして [オプション] に移動し、これらの値を設定します。
一緒に使用するとuseServerPrepStmts=false
、rewriteBatchedStatements=true
クライアントでバッチ挿入を「偽装」します。具体的には、挿入ステートメント:
INSERT INTO t (c1,c2) VALUES ('One',1);
INSERT INTO t (c1,c2) VALUES ('Two',2);
INSERT INTO t (c1,c2) VALUES ('Three',3);
次のように書き換えられます。
`INSERT INTO t (c1,c2) VALUES ('One',1),('Two',2),('Three',3`);
3 番目のオプションuseCompression=true
は、クライアントと MySQL サーバー間のトラフィックを圧縮します。
最後に、出力ステップのコピー数を 2 に増やして、データベースに挿入する 2 つのスレッドを作成できます。
それが役に立てば幸い!
参照 (オプション 2): https://anonymousbi.wordpress.com
于 2016-10-31T18:45:31.710 に答える