TiDBLightningの導入

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

ローカルバックエンドがデータのインポートに使用されている場合、インポートプロセス中、クラスタはサービスを提供できません。 TiDBサービスに影響を与えたくない場合は、 TiDBLightningTiDB-バックエンドに従ってデータのインポートを実行します。

ノート

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

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

    bin/tidb-lightning-ctl --switch-mode=normal
  • TiDB Lightningには、ダウンストリームTiDBで次の権限が必要です。

    特権範囲
    選択するテーブル
    入れるテーブル
    アップデートテーブル
    消去テーブル
    作成データベース、テーブル
    落とすデータベース、テーブル
    ALTERテーブル

    TiDB Lightningのchecksum構成項目がtrueに設定されている場合、ダウンストリームTiDBの管理ユーザー権限をTiDBLightningに付与する必要があります。

ハードウェア要件

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を24に設定できます。

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

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

データのエクスポート

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

./bin/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サポートを参照してください。

TiDBLightningをデプロイ

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

TiDBLightningを手動でデプロイ

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

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

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

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

TiDB Lightningパッケージをダウンロードするには、 TiDBエンタープライズツールのダウンロードページを参照してください。

ノート:

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

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

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

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

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

    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 &

TiDBLightningのアップグレード

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

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

このページは役に立ちましたか?