重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiDB Lightningの導入

このドキュメントでは、ローカルバックエンドを使用したTiDB Lightningのハードウェア要件と、手動でデプロイする方法について説明します。

ノート

TiDB Lightningを開始する前に、次の点に注意してください。

  • tidb-lightningがクラッシュした場合、クラスタは「インポートモード」のままになります。 「通常モード」に戻すのを忘れると、TiKVクラスタ上に大量の圧縮されていないデータが発生し、異常に高いCPU使用率とストールが発生する可能性があります。 tidb-lightning-ctlのツールを使用して、クラスタを手動で「通常モード」に戻すことができます。

    bin/tidb-lightning-ctl --switch-mode=normal
    

ハードウェア要件

tidb-lightningはリソースを大量に消費するプログラムです。次のように展開することをお勧めします。

  • 32以上の論理コアCPU
  • 20GB以上のメモリ
  • データソース全体を保存するのに十分な大きさのSSDで、より高速な読み取り速度を優先します
  • 10ギガビットネットワークカード(1GB /秒以上で転送可能)
  • tidb-lightningは、実行時にすべてのCPUコアを完全に消費するため、専用マシンにデプロイすることを強くお勧めします。不可能な場合は、 tidb-lightningtidb-serverなどの他のコンポーネントと一緒に展開し、CPU使用率をregion-concurrency設定で制限することができます。

ノート:

  • tidb-lightningはCPUを集中的に使用するプログラムです。コンポーネントが混在する環境では、 tidb-lightningに割り当てられるリソースを制限する必要があります。そうしないと、他のコンポーネントを実行できない可能性があります。 CPU論理コアのregion-concurrency %を設定することをお勧めします。たとえば、CPUに32個の論理コアがある場合、 region-concurrencyに設定できます。

さらに、ターゲットTiKVクラスタには、新しいデータを吸収するのに十分なスペースが必要です。 標準要件に加えて、ターゲットTiKVクラスタの合計空き領域は、データソースのサイズ× レプリカの数×2よりも大きくする必要があります。

デフォルトのレプリカ数が3の場合、これは、合計空き領域がデータソースのサイズの少なくとも6倍であることを意味します。

データのエクスポート

次のコマンドを使用してMySQLからデータをエクスポートするには、 dumplingツールを使用します。

./dumpling -h 127.0.0.1 -P 3306 -u root -t 16 -F 256MB -B test -f 'test.t[12]' -o /data/my_database/

このコマンドでは、

  • -B test :データがtestデータベースからエクスポートされることを意味します。
  • -f test.t[12]test.t1つとtest.t2のテーブルのみがエクスポートされることを意味します。
  • -t 16 :データのエクスポートに16スレッドが使用されることを意味します。
  • -F 256MB :テーブルがチャンクに分割され、1つのチャンクが256MBであることを意味します。

データソースがCSVファイルで構成されている場合、構成についてはCSVサポートを参照してください。

TiDB Lightningをデプロイ

このセクションでは、 TiDB Lightningを手動でデプロイするの方法について説明します。

TiDB Lightningを手動でデプロイ

ステップ1:TiDBクラスタをデプロイする

データをインポートする前に、TiDBクラスタをデプロイする必要があります。最新の安定バージョンを使用することを強くお勧めします。

展開手順はTiDBクイックスタートガイドにあります。

手順2: TiDB Lightningインストールパッケージをダウンロードする

TiDB Lightningパッケージをダウンロードするには、 TiDBツールをダウンロードするのドキュメントを参照してください。

ノート:

TiDB Lightningは、以前のバージョンのTiDBクラスターと互換性があります。 TiDB Lightningインストールパッケージの最新の安定バージョンをダウンロードすることをお勧めします。

ステップ3: tidb-lightningを開始します

  1. ツールセットからbin/tidb-lightningbin/tidb-lightning-ctlをアップロードします。

  2. データソースを同じマシンにマウントします。

  3. tidb-lightning.tomlを構成します。以下のテンプレートに表示されない構成の場合、 TiDB Lightningは構成エラーをログファイルに書き込んで終了します。

    sorted-kv-dirは、ソートされたKey-Valueファイルの一時ストレージディレクトリを設定します。ディレクトリは空である必要があり、ストレージスペースはインポートするデータセットのサイズよりも大きい必要があります。詳細については、 ダウンストリームストレージスペースの要件を参照してください。

    [lightning]
    # The concurrency number of data. It is set to the number of logical CPU
    # cores by default. When deploying together with other components, you can
    # set it to 75% of the size of logical CPU cores to limit the CPU usage.
    # region-concurrency =
    
    # Logging
    level = "info"
    file = "tidb-lightning.log"
    
    [tikv-importer]
    # Sets the backend to the "local" mode.
    backend = "local"
    # Sets the directory of temporary local storage.
    sorted-kv-dir = "/mnt/ssd/sorted-kv-dir"
    
    [mydumper]
    # Local source data directory
    data-source-dir = "/data/my_database"
    
    [tidb]
    # Configuration of any TiDB server from the cluster
    host = "172.16.31.1"
    port = 4000
    user = "root"
    password = ""
    # Table schema information is fetched from TiDB via this status-port.
    status-port = 10080
    # An address of pd-server.
    pd-addr = "172.16.31.4:2379"
    

    上記は基本的な設定のみを示しています。設定の完全なリストについては、 Configuration / コンフィグレーションセクションを参照してください。

  4. tidb-lightningを実行します。

    nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &
    

TiDB Lightningのアップグレード

バイナリのみを置き換えることで、 TiDB Lightningをアップグレードできます。これ以上の構成は必要ありません。 TiDB Lightningを再起動する詳細な手順については、 FAQを参照してください。

インポートタスクが実行されている場合は、終了するまで待ってからTiDB Lightningをアップグレードすることをお勧めします。そうしないと、チェックポイントがバージョン間で機能する保証がないため、最初から再インポートする必要がある可能性があります。