Kettle ツールのダウンロード、インストール、データ移行、スケジュールされたタスクの詳細な説明
篇幅有点长,将这五个内容放在了一篇文章里,其中最主要的是数据迁移和定时任务
目次
目次 |
---|
1. 簡単な紹介 |
2. ダウンロード |
3. インストール |
4. データ移行: 単一テーブルの全体的なデータ移行、単一テーブル内のさまざまなフィールドのデータ移行、および単純なバッチ データ移行を含む |
5. スケジュールされたタスク |
1. 簡単な紹介
- kettle は ETL ツール、ETL (Extract-Transform-Load、データ抽出、変換、読み込み) です。
- Kettle には、変換とジョブという 2 つのスクリプト ファイルがあります。変換は変換であり、ジョブは複数の変換によって構築されるワークフロー全体の抽象化と制御です。
- データ抽出は効率的かつ安定しています。
2. ダウンロード(比較的大きいのでお待ちください)
3. インストール
1. ファイルを解凍し、以下の「解凍された」ファイルを開きます。私は D ドライブに置きました (これはあなたが決めます)
2. ケトルの環境変数を設定する
1》.システムのプロパティを開き(「環境変数」を直接検索)、環境変数をクリックします。
2》. システム環境変数の「新規」をクリックすると「システム変数の編集」が表示されますので、変数名と変数値(参考までに私のアドレスです)を入力してOKをクリックします
3》Path、「New」をクリックし、先ほどの変数名をマッピングし、OKをクリックすると設定は完了です
3. 「data-integration」フォルダーに入り、「Spoon.bat」を見つけて、ダブルクリックして実行します (kettle には特別なインストールは必要ありません)。少し遅いかもしれませんが、焦らずにお待ちください。
4.すでに開始されています
4. データ移行(単一テーブルおよびバッチデータ移行)
ケトル ツールを使用したところで、どのように使用するのでしょうか? 次に、ソース データベースのテーブル データを使用してターゲット データベースにデータをインポートする方法を示します。これは、単一テーブルのインポートとバッチ インポートに分かれています。
これが開くインターフェイスです
あるデータベースから別のデータベースにテーブルデータを移行する方法 以下の 3 つの移行方法があります。
- 1. 全体的なデータ移行
注意:这里演示的是将一个库A的单个表整体转入到另一个库B中,B库没有要迁移的这张表;还会演示将一个库A的表数据转移到目标库B已有的表中,而这个目标库B的表已经存在,而且有的字段还不一定对应
1. ファイルをクリックして新しい変換を作成するか、図に示すように変換をダブルクリックします。
2. 以下の DB 接続をダブルクリックすると、データベース接続がポップアップ表示されます。対応するライブラリを選択し、対応する内容を入力します。接続が接続されているかどうかをテストして、[OK] をクリックします (以下の接続は postgres です)
。
注:一个表的话连接一个,两个的话相同操作,名字别搞混,以便后面好操作
mysql 接続図を添付します。
3. クリックしてコア オブジェクト、検索テーブル入力、テーブル出力を選択し、ダブルクリックしてワークスペースに表示し、特定のステップをクリックして削除を押すか、右クリックしてステップを削除します。中央の矢印が
表示されていない場合は直接接続されます。接続するには、Shift+マウスの左ボタンを使用して接続することもできます。また、下の図をクリックして接続することもできます。このようにして、それらの間に接続が確立されます。
4. 接続後、テーブルのエクスポートを開始します。テーブル入力をダブルクリックし、テーブルのエクスポート先のデータベース接続を選択し、SQL クエリ ステートメントとフィールドを取得してテーブル データをプレビューし、[OK] をクリックします。
5. テーブル出力をダブルクリックし、エクスポート テーブルのデータベース接続を選択し、モードを選択します。ターゲット テーブルを選択するか、エクスポートするテーブルの名前を入力できます。[SQL] をクリックして、必要な SQL ステートメントを直接作成します。をクリックし、以下を実行します (「ターゲット テーブルを実行する必要はありません」を選択した場合) 実行後にテーブルが自動的に作成されます。[OK] をクリックします。
6. 「小さな三角形」をクリックして実行し、「開始」をクリックします。
7. 変換されたファイルを保存します。変換は成功しました。
注:现在已经将源表导入到目标表,如果报错没有迁移成功,看是否点击执行了sql语句或者保存了转换的文件,保存的文件后缀是.ktr文件
- 2: データを既存のテーブルに移行する
这里演示的将一个库A的表数据转移到目标库B已有的表中,而这个目标库B的表已经存在,而且有的字段还不一定对应
1. 現在使用しているツールは以下の通りで、直接検索するか、パネルにドラッグするか、直接クリックすることができます。
2. 次に、最初のものから開始し、図に示すように、最初のモジュール テーブル入力をクリックします。
矢印または Shift+左マウス ボタンで 4 番目のアイコンを選択すると、マウスで動く灰色の矢印が表示されます。次に、マウスを 2 番目のモジュール値マッピングに移動すると、矢印が青に変わることがわかります。次に 2 番目のモジュール値マッピングをクリックすると、テーブル入力と値マッピングの間に余分な青い矢印があることがわかります。メイン出力ステップを選択する必要があります。以下に示すように、すべてのモジュールはこのように直列に接続されます。
3. 上の図は完全なテーブルのデータ交換を表しています。この時点では、左側の列のメイン オブジェクト ツリーをクリックし、DB 接続を右クリックして、[新規] を選択し、データベース接続を入力する必要があります。図に示すように、接続が成功したら、「確認」をクリックして新しい接続を作成します。
4. 最初の操作はテーブル入力です。名前が示すように、テーブル入力はデータのソースを表します。テーブル入力をダブルクリックし、データベース接続を選択し、データを取得する SQL を記述します。 「プレビュー」をクリックして、見つかったデータを表示します。無効などの一部のフィールドはデータベースに 0 または 1 として保存されているため、この時点でデータ形式を確認する必要がありますが、Kettle で見つかったデータでは、無効は Y またはN
5. データがプレビューされたら、SQL ステートメントが正しいことを意味します. 値マッピングをクリックします. 値マッピングとは、Y と N を 1 と 0 にマッピングするなど、特定の値を別の値に変更することです。値マッピングをダブルクリックし、まず使用するフィールド名を選択し、次に元の値とターゲット値を入力して、「OK」をクリックします。図に示すように:
6. [フィールドの選択] をクリックします。データ移行中は多くのフィールドが異なる必要があるため、2 つのテーブルのフィールドを 1 対 1 で照合するにはどうすればよいですか? このようにして、フィールド選択を通じてフィールド名を希望するものに変更できます。まず、フィールド選択をダブルクリックし、3 番目のタブ「メタデータ」に切り替えます。次に、右側をクリックして変更されたフィールドを取得すると、Kettle は SQL でクエリされたフィールドを 1 つずつリストします。名前を変更する列に現在のテーブルのフィールドを入力し、その型に対応する型を入力します。 Integer は Long を表し、Number は Double を表します。同時に型を空白のままにすることもできますが、お勧めしません。入力後、「OK」を選択します。図に示すように:
7. この時点で、現在のテーブルには元のテーブルにないフィールドが多数あることがわかりますが、これらのフィールドは必須であり空にすることはできないため、定数を追加するモジュールを使用する必要があります。名前、タイプ、長さ、値 (デフォルト値) を入力し、「OK」をクリックします。図に示すように:
8. 操作の前の部分を完了すると、基本的なフィールドを整列させることができます。ただし、一部のフィールドは論理処理が必要であり、取得した値を現在のテーブルに直接保存することはできません。たとえば、一部のプロジェクトが移行されている場合などです。現在のテーブルにデータが既に存在する場合、ID は重複します。移行されたデータ ID を直接負の値に変更し、関連する ID も負の値に変更する必要があります。これにより、ID が重複して移行できない問題を解決できます。データを移行しても、関係は失われません。
· このとき、Java コード モジュールを使用する必要があります。ここで問題があります。Kettle に付属の Java コード モジュールでは、jar パッケージが自動的にインポートされないため、最初にアイデアにコードを記述し、同時に、jar パッケージをインポートする必要があります。
・当然ですが、インポートしたjarパッケージはKettleフォルダ配下のlibフォルダに存在する必要があります。コードを記述するときは、左列の入力フィールドで getValue (値) をダブルクリックし、左列の出力フィールドで setValue (割り当て) をダブルクリックします。コードを記述するときに、右下のテスト クラスをクリックして Java コードをテストできます。したがって、Javaコードモジュールを論理処理に使用できますが、
不要な場合は、
図に示すようにこのステップを削除してください。
9. テーブル出力をダブルクリックし、エクスポート テーブルのデータベース接続を選択し、モードを選択します。ターゲット テーブルを選択するか、エクスポートするテーブルの名前を入力できます。[SQL] をクリックして、必要な SQL ステートメントを直接作成します。をクリックし、以下を実行します (「ターゲット テーブルを実行する必要はありません」を選択した場合) 実行後にテーブルが自動的に作成されます。[OK] をクリックします。
10. 「実行」をクリックして、変換されたファイルを保存します。
- 3. 個別またはバッチで直接インポート
注:这里postgres中只可以迁移源库的public中的数据,其他模式下的会提示找不到
1. [ツール] - [ウィザード] - [単一テーブルのコピー ウィザード] または [複数テーブルのコピー ウィザード] (ここでは複数のテーブルが選択されています) をクリックし、ソース データベースとターゲット データベースをクリックして、[完了] をクリックします。 2.ソース データベースで使用するテーブルを見つけます。 3. ファイル名を入力し
、保存するフォルダーを選択し、完了をクリックします。
4. 「実行」をクリックすると、移行が成功します。
5. スケジュールされたタスク
1. 以下に示すように、[ファイル] - [新規] - [ジョブ] をクリックします。
2. Start 関数と Convert 関数を検索し、作業デスクトップにドラッグするか、ダブルクリックして 2 つの間の接続を確立します (Shift キーを押しながらマウスの左ボタンを押して接続するか、ダブルクリックして直接接続します)。
3. [開始] をダブルクリックすると、ポップアップ ウィンドウが表示され、タイプを選択し、必要な時間間隔を入力します。データは設定された時間内にデータベース データを更新します。[OK] をクリックします ([OK] が見つからない場合は拡大します)。 「繰り返し」を選択すると、更新のたびに元のデータを重ねて表示します。
4. [変換] をダブルクリックし、変換されたファイル名を入力し、[参照] をクリックして、スケジュールされたタスクに使用する .ktr ファイルを選択し (参照はできません。ファイル パスを貼り付けるだけです)、[OK] をクリックします (.ktrここにあるファイルは、作成したばかりのデータです。移行後に保存されたファイルです)
5. 「実行」をクリックして変換ファイルを保存すると、実行が成功します。スケジュールされたタスクが完了します。データベース内のテーブル データは、設定した時間間隔に従って更新されます (ここでは 1 つのテーブルのスケジュールされたタスクのみを示します)
。 )
*注:如果报错,要看自己选择的.ktr文件是否正确,并且是否保存的要转换的文件*
6. スケジュールされたタスクの完了後、このソフトウェアを閉じることはできません。終了すると、スケジュールされたタスクは実行されなくなります。
参考:データ移行
これがお役に立てば幸いです