> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Magic ETLのタイル：データを結合

export const InlineImage = ({src, alt = '', height = '1.6em'}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

### はじめに

この記事では、Magic ETLで［データを結合］タイルを使用する方法について説明します。

Magic ETL DataFlowを作成する方法については、 [こちら](/s/article/360055259234 "Magic ETL DataFlowを作成する") を参照してください。

<Frame>
  <img alt="Combine_Data_Tab.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhi.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=dd262b75828ba12bd2b206f928ba2c99" style={{width: 246, height: 124}} width="278" height="140" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhi.png" />
</Frame>

***

* [［行を追加］タイル](#append_rows_tile)

  * [使用事例](#use_case)
  * [［行を追加］タイルを設定する](#configure_append_rows_tile)
  * [Magic ETLで行を追加する（動画）](#appending_rows_video)
* [［データを結合］タイル](#join_data_tile)
  * [［データを結合］タイルを設定する](#configure_join_data_tile)
  * [一致するペアを選択する](#select_matching_pairs)
  * [結合タイプ](#join_types)
  * [［データを結合］の設定](#join_data_configuration)

***

### ［行を追加］タイル

<Frame>
  <img alt="Append_Rows.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhU.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=1a0b597cccd9cda1db907f95c93109f8" style={{width: 119, height: 113}} width="101" height="95" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhU.png" />
</Frame>

［行を追加］タイルでは、複数のDataSetから（同様な列とデータ構造を持つ）行を1つのDataSetに追加し、同時に重複する行を含むすべての一致データを表示することができます。

<Note>
  **注記：** データ行の追加は、同じデータ構造とデータタイプになっている入力DataSetからのみ行うことができます。 ［行を追加］タイルは、データ構造が一致しない場合、一致しないデータに対応する列を追加で作成します。 例えば、整数の列にテキストを追加しようとすると、整数の列とテキストの列の2つの列が作成されます。
</Note>

# 使用事例

以下の変換フローを例に取ります。

<Frame>
  <img alt="Example_Append.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhY.png?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=ccc4d181efe6933d7df5c2655fdea9aa" width="475" height="287" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhY.png" />
</Frame>

［行を追加］タイルで以下の設定を使用して、

<Frame>
  <img alt="Append_Configuration.png" src="https://mintlify.s3.us-west-1.amazonaws.com/domoinc-openapi-sync-dataflows/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EM5w000005vNhj.png" style={{width: 702, height: 329}} />
</Frame>

以下のデータを

<Columns>
  <Frame>
    <img src="https://mintcdn.com/domoinc-openapi-sync-dataflows/YY6W1U347GpqLSJS/images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgH.png?fit=max&auto=format&n=YY6W1U347GpqLSJS&q=85&s=fe97be8c02a5ca9992a2d986984b7742" width="599" height="284" data-path="images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgH.png" />
  </Frame>

  <Frame>
    <img alt="etl_appendrows_datain2.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/YY6W1U347GpqLSJS/images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgT.png?fit=max&auto=format&n=YY6W1U347GpqLSJS&q=85&s=cc5b364c3894327bea611c8a5bb988b7" width="599" height="284" data-path="images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgT.png" />
  </Frame>
</Columns>

以下のデータに変換します。

<Frame>
  <img alt="etl_appendrows_dataout.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/YY6W1U347GpqLSJS/images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgU.png?fit=max&auto=format&n=YY6W1U347GpqLSJS&q=85&s=beb289ddd62d0f2f35642da16aec632c" width="599" height="529" data-path="images/kb/ka05w00000124T8-00N5w00000Ri7BU-0EM5w000005vNgU.png" />
</Frame>

<Note>
  **注記：** プレビュー時に、変換されたデータでは行が必ずしも期待する順序の並びとならない場合があります。表カードでデータを表示する際に、行の順番を制御することができます。
</Note>

[このページのトップへ](#intro)

# ［行を追加］タイルを設定する

1. キャンバスで **［行を追加］** タイルを選択して、タイルエディターを開きます。
2. （オプション）タイルの名前を変更するには、タイルエディターの上部の
   <InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EM5w000005vNeQ.png" /> **編集** を選択して名前を入力します。
3. タイルエディターの **［設定］** タブで、ステップ1のドロップダウンを選択し、以下のオプションから追加に含める列を選択します。

   * **［DataSetから列を含める］ —** 入力DataSetを1つ選択して、その列を含めます。
   * **［全ての列を含める］ —** すべての入力DataSetから固有の列を含めます。
   * **［シェアされた列のみ含める］ —** 各入力DataSetで使用されている列のみを含めます。
4. 列のタイプが一致しない場合の処理方法として **［最も互換性のあるデータタイプを使う］** または **［タイプエラーを表示］** を選択します。
5. 各DataSetに実行される変更点を確認します。
6. タイルエディターの右上隅の **［終了］** を選択します。

   <Tip>
     **ヒント：** <InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000000Se49.jpg" /> **［プレビューを実行］** を選択すると、タイルで変換されたデータをプレビューできます。変換が完了すると、タイルエディターの **［プレビュー］** タブで結果を閲覧できます。
   </Tip>

[このページのトップへ](#intro)

# Magic ETLで行を追加する（動画）

<iframe allowfullscreen="allowfullscreen" frameborder="1" height="315" src="//www.youtube-nocookie.com/embed/6UL-R4jGdTg" width="560" />

[このページのトップへ](#intro)

### ［データを結合］タイル

<Frame>
  <img alt="Screenshot 2024-11-11 at 3.24.06 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kPkr.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=69b55cf4df61a88a0e498c0f9e226606" style={{width: 118, height: 148}} width="94" height="118" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kPkr.jpg" />
</Frame>

［データを結合］タイルでは、特定の列（複数可）にある共通の値を使用し、2つのDataSetまたはデータ「ストリーム」の列を1つのDataSetに結合することができます。

<Warning>
  **重要：**

  * 行を結合するために使用する列は、両方のDataSetに必ず存在し、かつ同じデータ構造である必要があります。
  * 内側、左外側、および両方の外側結合では、プライマリまたは「ルックアップ表」に最初の入力DataSet（左側）として固有値を指定します。特定化するための列内の値の重複は、1万回を超えることはできません。
</Warning>

# ［データを結合］タイルを設定する

1. 結合する2つの入力DataSetをキャンバスの［データを結合］タイルに接続します。
2. **［データを結合］** **タイル** を選択して、画面の下部にあるタイルエディターを開きます。
3. （オプション）タイルの名前を変更するには、タイルエディターの名前フィールドの横の
   <InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003nMor.jpg" /> **編集** を選択して名前を入力します。

   <Frame>
     <img alt="edit name.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kVNF.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=7cb485eb35ab8e64f3c2e5b4f5b1927f" style={{width: 551, height: 253}} width="634" height="291" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kVNF.jpg" />
   </Frame>
4. エディターのステップ1で、 **［左の表］** ドロップダウンからDataSetを選択します（［右の表］は、もう一方のDataSetによって自動的に入力されます）。

   <Frame>
     <img alt="Screenshot 2024-11-11 at 4.41.19 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kVVJ.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=6f98abae2c0640aece6f724be00545a4" style={{width: 691, height: 113}} width="966" height="158" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003kVVJ.jpg" />
   </Frame>

   **［結合タイプ］** ドロップダウンで、実行する結合のタイプを選択します。利用可能な結合タイプについては、後述の「 [結合タイプ](#join_types) 」を参照してください。
5. エディターのステップ2で、結合条件を定義します。以下の2つのオプションがあります。
   * **［等値条件］** では、一致する値にもとづいて [各表の列を結合します](#add_equality_condition) 。
   * **［式の条件］** では、データの結合方法について [独自の式を記述します](#write_a_join_expression) 。
6. エディターのステップ3で、出力列を変更します。Magic ETLは、列名などの競合があることを警告します。

   <Frame>
     <img alt="Screenshot 2024-11-13 at 12.27.55 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nOKP.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=42b943cfd1a6375315d1cad782a44c2a" style={{width: 700, height: 168}} width="1834" height="440" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nOKP.jpg" />
   </Frame>
7. エディターでの設定が終了したら、 **［終了］** を選択します。

   <Frame>
     <img alt="done in editor.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nO97.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=eea9624579233b9826e538549a68ff01" style={{width: 791, height: 94}} width="2878" height="342" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nO97.jpg" />
   </Frame>

   <Tip>
     **ヒント：** <InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003kW6P.jpg" /> **［プレビューを実行］** を選択すると、タイルで変換されたデータをプレビューできます。変換が完了すると、タイルエディターの **［プレビュー］** タブで結果を閲覧できます。
   </Tip>

[このページのトップへ](#intro)

#### 等値条件を追加する

タイルエディターのステップ2で **［+等値条件］** を選択した場合、ドロップダウンを使用して、一致する値にもとづいて結合できる列のペアを左右の表から選択します。 **［+等値条件］** を再度選択することで、必要な数の列ペアを追加できます。

<Frame>
  <img alt="Screenshot 2024-11-13 at 12.30.40 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/ag1wPXP26szkgB9J/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nPWb.jpg?fit=max&auto=format&n=ag1wPXP26szkgB9J&q=85&s=7f6ec41c0dd51e9b8b39b97ed0d622d3" style={{width: 701, height: 226}} width="1730" height="558" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nPWb.jpg" />
</Frame>

#### 結合式を入力する

タイルエディターのステップ2で **［+式の条件］** を選択した場合、自由形式フィールドを使用して、表の関係を識別する式を入力します。

<Frame>
  <img alt="Screenshot 2024-11-13 at 12.41.33 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/ag1wPXP26szkgB9J/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nQE9.jpg?fit=max&auto=format&n=ag1wPXP26szkgB9J&q=85&s=de10693be1f1025f39d74af64afaf0dc" style={{width: 749, height: 174}} width="1644" height="382" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000003nQE9.jpg" />
</Frame>

<InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003nQZ7.jpg" /> **［スクリプトエディタを開く］** （対角線の矢印アイコン）を選択すると、スクリプトエディターが開き、結合式を作成するスペースが広がります。

不等式演算子（\<、>、>=、\<+など）、関係を範囲として指定できるキーワード（BETWEENなど）、SQLベースのJoinで使用できるその他の関数などを使用できます。

<InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003nR29.jpg" /> **［スクリプトを検証］** （円形の矢印アイコン）を選択すると、DataFlowを実行する前に結合式が検証されます。

# 結合タイプ

使用可能な結合タイプについては、以下の表を参照してください。

<table border="1" cellpadding="1" cellspacing="1" data-aura-rendered-by="33:205;a"><thead><tr><th colspan="1" rowspan="1"><p> 結合 </p></th><th colspan="1" rowspan="1"><p> 説明 </p></th></tr></thead><tbody><tr><td colspan="1" rowspan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003kWsn.jpg" /></p><p> 内側 </p></td><td colspan="1" rowspan="1"><p> 双方の入力DataSetの一致する行のみ含めます。 </p></td></tr><tr><td colspan="1" rowspan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003kWuP.jpg" /></p><p> 左外側 </p></td><td colspan="1" rowspan="1"><p> 最初の入力DataSet（左側）のすべての行とそれに一致する2番目の入力DataSet（右側）の行を含めます。 </p></td></tr><tr><td colspan="1" rowspan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003kSkM.jpg" /></p><p> 右外側 </p></td><td colspan="1" rowspan="1"><p> 2番目の入力DataSet（右側）のすべての行とそれに一致する最初の入力DataSet（左側）の行を含めます。 </p></td></tr><tr><td colspan="1" rowspan="1"><p><InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000003kWxd.jpg" /></p><p> 両方の外側 </p></td><td colspan="1" rowspan="1"><p> 両方の入力DataSetのすべての行を含めます。 <a id="join_data_configuration" target="_blank" /></p></td></tr></tbody></table>

[このページのトップへ](#intro)

# ［データを結合］の設定

**［結合タイプ］** ドロップダウンメニューの横のギア <InlineImage src="/images/kb/ja/ka0Vq000000G7NJ-00N5w00000Ri7BU-0EMVq000005bq3C.jpg" /> では、結合を複数のタイプのいずれかに制限するオプションが提供されます。

* 多対多（制限なし）
* 多対1
* 1対多
* 1対1

<Frame>
  <img src="https://mintcdn.com/domoinc-openapi-sync-dataflows/ag1wPXP26szkgB9J/images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000005buWb.jpg?fit=max&auto=format&n=ag1wPXP26szkgB9J&q=85&s=c3c2fa697860471e5205954c100493c0" style={{width: 646, height: 287}} width="936" height="416" data-path="images/kb/ka0Vq000000G5AD-00N5w00000Ri7BU-0EMVq000005buWb.jpg" />
</Frame>

この設定はオプションであり、 **［データを結合］** タイルが機能するために必要なわけではありません。設定すると、場合によっては、結合が意図した通りに動作していることを証明しやすくなります。

いずれかのオプションを選択すると、結合がDataFlowで実行を試みた時点での制約が検証されます。制約に違反した場合（例えば、複数の値が［右の表］にあり、リレーションシップが［1対1］に設定されている場合に左側の同じキーに結合した場合）、エラーが発生し、DataFlowが終了します。

[このページのトップへ](#intro)

日本語
