...
Table of Contents | ||
---|---|---|
|
概要
Yellowfinでは、SQLデータベースOutput Step(出力ステップ)を通して、変換したデータをデータベーステーブルへ保存することができます。こちらのステップの設定をするためには、対象のデータベースやテーブル、必要な更新のタイプ、マッピングするフィールドなど、関連する様々な設定を定義しなくてはいけません。こちらの項目では、それぞれの詳細について紹介します。Yellowfinでは、SQLデータベースにアウトプットすることで、トランスフォーメーションしたデータをデータベーステーブルへ保存することができます。こちらのステップの設定をするためには、対象のデータベースやテーブル、必要な更新のタイプ、マッピングするフィールドなど、関連する様々な設定を定義しなくてはいけません。こちらの項目では、それぞれの詳細について紹介します。
Anchor | ||||
---|---|---|---|---|
|
Warning | ||
---|---|---|
| ||
既存のソースデータを上書きしないために、Output Step(出力ステップ)の設定時には、細心の注意が必要です。データベースへのOutput Step(出力ステップ)には様々なオプションがあり、テーブルの削除、データの削除、新規ロウ(行)の追加、既存データの更新などを行うことができます。データ変換フローの構築には、テスト環境の使用をお勧めします。また、編集モードの場合、デフォルトでOutput Step(出力ステップ)は無効に設定されています(デザインモードオプションでの実行を参照してください)既存のソースデータを上書きしないために、アウトプットステップの設定時には、細心の注意が必要です。データベースへのアウトプットステップには様々なオプションがあり、テーブルの削除、データの削除、新規ロウ(行)の追加、既存データの更新などを行うことができます。変換フローの構築には、テスト環境の使用をお勧めします。また、編集モードの場合、デフォルトでアウトプットステップは無効に設定されています(デザインモードオプションでの実行を参照してください) |
オプションの理解
テーブル作成オプション
テーブル作成タイプ | 説明 | |
Use Existing(既存を使用)既存を使用 | 選択した既存のテーブルへデータを保存します。 | |
Create If Not Exists(既存が無い場合に作成)存在しない場合に作成する | 指定したテーブルが存在しない場合は、新規作成をし(または、作成された後に)、データを保存します。 | |
Drop Existing(既存を削除)既存をドロップ | 既存のテーブルを削除し、常に新規作成をします。このオプションは、既存のデータを保持する必要が無い場合にのみ使用してください。 | |
Drop If Metadara Conflict(メタデータの競合があれば削除) | 変換フローとテーブルのデータ間のメタデータに競合がある場合(競合とは、フローファイル内のフィールド/カラム(列)数が、テーブル内と異なる場合や、データタイプが異なる場合などを指します)、テーブルを削除し、新規作成をすることでデータを保存します。競合が無い場合は、既存のテーブルを使用します。メタデータに矛盾がある場合にドロップ | 変換フローとテーブルのデータ間のメタデータに矛盾がある場合(矛盾とは、フローファイル内のフィールド/カラム(列)数が、テーブル内と異なる場合や、データ型が異なる場合などを指します)、テーブルを削除し、新規作成をすることでデータを保存します。矛盾が無い場合は、既存のテーブルを使用します。このオプションは、既存のデータを保持する必要が無い場合にのみ使用してください。 |
Tip |
---|
多くの場合は、「Use Existing(既存を使用)既存を使用」をオプションを使用します。データベース管理者は、データ変換の対象になるテーブルを作成し、関連するセキュリティアクセスを割り当てます。 |
Note |
---|
稀に、対象のテーブルが存在しない場合があります。この時適切なセキュリティアクセス権が付与されていれば、Yellowfinがテーブルを作成します。Create If Not Exists(既存が無い場合に作成)オプションは、指定したテーブルが存在しない場合にテーブルを作成します。これは通常、データ変換フローを初めて実行する場合に発生し、その後は既存のテーブルが使用されることになります。Drop Existing(既存を削除)は、常にテーブルを削除し、新しく作成します。テーブルに保存されている可能性のあるデータをすべて削除するので、使用には細心の注意が必要です。Drop If Metadara Conflict(メタデータの競合があれば削除)も同様に、テーブル構造とフロー内に含まれるデータに相違がある場合は、テーブルを削除し、新しく作成します。このオプションもデータを削除するため、存在しない場合に作成するオプションは、指定したテーブルが存在しない場合にテーブルを作成します。これは通常、変換フローを初めて実行する場合に発生し、その後は既存のテーブルが使用されることになります。既存をドロップは、常にテーブルを削除し、新しく作成します。テーブルに保存されている可能性のあるデータをすべて削除するので、使用には細心の注意が必要です。メタデータに矛盾がある場合にドロップも同様に、テーブル構造とフロー内に含まれるデータに相違がある場合は、テーブルを削除し、新しく作成します。このオプションもデータを削除するため、使用には細心の注意が必要です。 |
...
更新タイプ
更新のタイプ更新タイプ | 説明 |
Insert(挿入)挿入 | 既存のデータの最後にデータを追加をします。 |
Truncate(置き換え)切り捨て | 既存のすべてのデータを新しい値に置き換えます。これは既存のデータを削除するので、使用には細心の注意が必要です。 |
Update(更新) | データ変換フローに存在するロウ(行)と一致するデータベース内のフィールドの値を更新します。このオプションは既存のデータを上書きするため、使用には細心の注意が必要です。 |
Update & Insert(更新と挿入) | データ変換フローに存在するロウ(行)を一致するデータベース内のフィールドの値を更新します。このオプションは既存のデータを上書きするため、使用には細心の注意が必要です。一致するロウ(行)が存在しない場合は、新規ロウ(行)を挿入します。 |
...
更新 | 変換フローに存在するロウ(行)と一致するデータベース内のフィールドの値を更新します。このオプションは既存のデータを上書きするため、使用には細心の注意が必要です。 |
更新して挿入 | 変換フローに存在するロウ(行)が一致するデータベース内のフィールドの値を更新します。このオプションは既存のデータを上書きするため、使用には細心の注意が必要です。一致するロウ(行)が存在しない場合は、新規ロウ(行)を挿入します。 |
ステップの設定
SQLアウトプットステップにトランスフォーメーションしたデータを保存する準備ができたら、以下の手順に従います。
- 変換フロービルダーの画面左側からアウトプットステップボタンをクリックして、すべてのステップを表示します。
- 一覧から「SQLデータベースにアウトプット」ステップをキャンバスへドラッグします。
- ステップをクリックして、変換フローパネルに設定詳細を表示します。
- 一覧からデータベースを選択します。書き込み可能なデータソースのみが表示されます。
- テーブル作成オプションを選択します。テーブル作成オプションの詳細は、こちらを参照してください。
- 選択したプロセスを継続します。
- 「Use Existing(既存を使用)既存を使用」を選択した場合、データを保存する既存のテーブルを選択し、手順4へ進みます。
- 「Create If Not Exists(既存が無い場合に作成)存在しない場合に作成する」を選択した場合、新規テーブル名を入力します。オプション設定として、インデックスに使用するテーブルフィールドを選択することができます(注意:インデックスは、クエリーパフォーマンスを改善するために使用します。こちらのオプションを使用するべきか不明な場合は、システム管理者に問い合わせをしてください)。手順4へ進みます。
- 「Drop Existing(既存を削除)既存をドロップ」を選択した場合、新規テーブル名を入力し、手順5へ進みます。
- 「Drop If Metadara Conflict(メタデータの競合があれば削除)」を選択した場合、新規テーブル名を入力し、データ変換フローに存在するフィールドが、テーブル内よりも多い場合に、既存のテーブルを削除するかどうかを指定します。手順4へ進みます。
- メタデータに矛盾がある場合にドロップ」を選択した場合、新規テーブル名を入力し、変換フローに存在するフィールドが、テーブル内よりも多い場合に、既存のテーブルを削除するかどうかを指定します。手順4へ進みます。
更新タイプから、テーブルの更新方法を選択します。すべてのオプションの詳細は、こちらを参照してください。
Note 「Update(更新)更新」、または「Update & Insert(更新と挿入)」オプションを使用する場合、さらにロウ(行)の一致が要求されます。これは、識別子に「Join(参加)」を選択するか、一致するフィールドを選択し、更新するフィールドを指定することで行われます。何も選択されていない場合は、フィールドはフローの一部としてJoin(参加)、または更新に使用されることはありません。更新して挿入」オプションを使用する場合、さらにロウ(行)の一致が要求されます。これは、識別子に「参加」を選択するか、一致するフィールドを選択し、更新するフィールドを示すように「設定」することで行われます。何も選択されていない場合は、フィールドはフローの一部として参加、または更新に使用されることはありません。
- このOutput Step(出力ステップ)をデザインモードで実行するには、トグルスイッチを有効にします。このアウトプットステップをデザインモードで実行するには、トグルスイッチを有効にします。警告を参照してください。
- 設定が完了したら、「Apply(適用)適用」ボタンをクリックして、設定内容を保存します。