0

ソースからターゲットへのデータの毎日のロードを必要とする 400 万のレコードがあり、毎日切り捨てを行っています。毎日 400 万レコードのデータをロードするテーブルが 10 個ほどあるため、9 時間ほどかかります。パフォーマンスを向上させる方法を教えてください。ありがとう

4

1 に答える 1

0

次の 2 つのオプションがあります。

  1. PDI で使用可能な MY SQL バルク ローダー ステップを使用します。これにより、データの読み込みが確実に高速化されます。
  2. 簡単な JDBC 接続設定を使用することで、速度を上げることができます。

    useServerPrepStmts=false
    rewriteBatchedStatements=true
    useCompression=true
    

これらのオプションは、接続時に PDI に入力する必要があります。接続をダブルクリックして [オプション] に移動し、これらの値を設定します。

一緒に使用するとuseServerPrepStmts=falserewriteBatchedStatements=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 に答える