コンテンツにスキップ

PlaidCloud Documentから、Microsoft Excelファイルの特定のワークシートをインポートします。Analyzeは、従来のExcel形式(XP/2003)と新しい形式(2007/2010/2013)の両方をサポートしています。サポートするファイルタイプには、次のものが含まれますが、これらに限定されません。

  • XLS
  • XLSX
  • XLSB
  • XLSM

バイナリブック(XLSB)、従来のXLS、ODSファイルでも、XLSXと同じ方法でワークシートとセル範囲をインポートできます。

Excelのインポートは、ブック全体をメモリに読み込むのではなく一時ストレージ経由でストリーミングされるため、非常に大きなファイルでもメモリ不足にならずにインポートできます。ソースのデータ型(10進数、日付、タイムスタンプ)は、テキストを経由せずにターゲットテーブルに保持されます。

例はまだありません…


ソースとターゲットのインポート

この変換のファイルセレクターでは、PlaidCloud のドキュメントの保存場所にあるファイルを選択してインポートできます。

ディレクトリを選択してインポートすることもできます。その場合、変換の実行時にそのディレクトリ内のすべてのファイルがインポートされます。

ソースアカウント

アクセス権のある PlaidCloud のドキュメントアカウントを選択します。これにより、次の選択でディレクトリやファイルを選べるようになります。

プロジェクト内では、一覧の先頭に Project Default も表示されます。これは、プロジェクトでその時点のデフォルトに設定されているアカウントを表すものです。プロジェクトにデフォルトのアカウントがある場合、新しいステップでは Project Default があらかじめ選択されます。既存のステップは、変更するまで保存済みのアカウントを使い続けます。Project Default のままのステップは、実行時にプロジェクトのデフォルトになっているアカウントに対して実行されます。デフォルトが設定されていない場合、別のアカウントに切り替えることはせず、プロジェクト名を示して実行が失敗します。

検索オプション

検索 オプションを使うと、指定したディレクトリパス以下で一致するすべてのファイルを見つけてインポートできます。多くのファイルを含める必要があるものの、それらがネストされたディレクトリに保存されている場合や、同じディレクトリ内にインポートしたくないほかのファイルと混在している場合に特に便利です。

選択した検索パスが、検索を開始するディレクトリになります。検索処理では、そのディレクトリとサブディレクトリ内で、指定した検索条件に一致するすべてのファイルが検索されます。検索条件がサブディレクトリ内のファイルにも適用できることを確認してください。

検索には次の条件を使用できます。

  • 完全一致: 検索テキストと完全に一致するファイル
  • 次で始まる: 検索テキストで始まるファイル
  • 含む: 検索テキストを含むファイル
  • 次で終わる: 検索テキストで終わるファイル

AI アシスタントや REST API では、検索を glob (CO Store*.yxdb のようなワイルドカードパターンを、大文字と小文字を区別せずにファイル名全体と照合) や regex (ファイル名全体が一致する必要がある正規表現) に設定することもできます。正規表現は、(?i) で始まらない限り大文字と小文字を区別します。

ソースファイルパス

特定のファイルやファイルを含むディレクトリをインポートする必要がある場合は、検索を使うよりもファイルやディレクトリを直接選択するほうが適しています。

ファイルまたはディレクトリを選択するには、参照ボタンを使って、上で選択したドキュメントアカウント内のパスを選びます。

変数の置換

検索オプションと、特定のファイル/ディレクトリを指定するオプションのどちらでも、パス、検索テキスト、ファイル名に変数を使用できます。

current_month 変数を使って正しいファイルを動的に指定する例:

legal_entity/inputs/{current_month}/ledger_values.csv

ターゲットテーブル

ビューには実データが含まれないため、インポートのターゲットに選択できるのはテーブルのみです。

動的オプション

動的オプションでは、変数を含むテキストでテーブルを指定できます。テーブルやビューの参照が指定した変数によって決まる、変数駆動のワークフローを使う場合に便利です。

current_month 変数を使ってターゲットテーブルを動的に指定する例:

legal_entity/inputs/{current_month}/ledger_values

静的オプション

特定のテーブルをインポートのターゲットにする場合は、Dynamic ボックスをオフのままにして、ターゲットのテーブルを選択します。

ターゲットのテーブルが存在しない場合は、Create new table ボタンを選択して、目的の場所にテーブルを作成します。

テーブルエクスプローラーは、どのテーブル選択でも常に使用できます。テーブル選択の右側にあるテーブルエクスプローラーボタンをクリックすると、テーブルエクスプローラーのウィンドウが開きます。

非ASCII文字を削除するオプション

このオプションを選択すると、インポート時にASCII以外のコンテンツがすべて削除されます。PlaidCloudはUnicode(UTF-8)を完全にサポートしていますが、実際のファイルにはさまざまなエンコードや不要な文字が含まれていることがあり、処理が難しくなる場合があります。

ファイルの内容がASCIIのみであると想定される場合は、このチェックボックスをオンにすると、インポート処理を円滑に実行できます。

インポート後にファイルを削除するオプション

このオプションを使用すると、インポートが正常に完了した後に、PlaidCloudのドキュメントアカウントからそのファイルを削除できます。

インポート用ファイルが基幹システムから再作成できる場合や、処理済みの元の入力ファイルを保持する必要がない場合に便利です。

削除されるのは、インポートされたファイルのみです。インポート中にスキップされたファイルや警告が発生したファイルは、フォルダーに残ります。

ソースファイルが変更されていない場合に再インポートをスキップするオプション

このオプションがオンの場合、前回の正常な実行以降にソースファイルとステップの設定が変更されていなければ、このステップのワークフロー実行では、ダウンロード、変換、テーブルの再構築を含むインポート全体がスキップされます。これにより、スケジュールされたワークフローが、変更のないソースファイルに対して再実行される際の無駄な処理を避けられます。

ステップは、各ソースファイルをパス、サイズ、最終更新日時(ソースがコンテンツハッシュを提供する場合はそれも)で比較します。ファイルが追加、削除、変更された場合や、ステップの構成が変更された場合は、インポートが通常どおり実行されます。このオプションはデフォルトでオンです。常に再インポートするにはオフにしてください。手動で行う単発のインポートは常に実行されます。

スキップするには、ターゲットテーブルに前回のインポートで読み込まれた行が残っていることも条件になります。テーブルが空になっている場合や、行数を読み取れない場合は、スキップして下流のステップにデータがない状態になることを避けるため、インポートが再度実行されます。

一部のソース(たとえばSFTP)はコンテンツハッシュを提供しないため、その場合の変更の判定材料はファイルのサイズと最終更新日時のみになります。サイズと更新日時が同じままファイルがその場で置き換えられた場合は、未変更と見なされてスキップされます。そのような方法でソースが更新される可能性があるステップでは、このオプションをオフにしてください。

Excelファイルにはヘッダーがある場合とない場合があるため、PlaidCloudでは、ヘッダーを使用する、ヘッダーを無視する、または列の順序で列の対応を決定する、のいずれかを選択できます。

  • ヘッダーなし: ファイルにヘッダーが含まれていません。データマッパーのソースリストを使用して、列の対応を決定します。
  • ヘッダーあり - ヘッダーを使用してフィールドリストを上書き: ファイルにヘッダーがあります。指定されたヘッダー名を使用し、データマッパーのソースリストは無視します。
  • ヘッダーあり - ヘッダーをスキップして代わりにフィールドリストを使用: ファイルにヘッダーはありますが、無視する必要があります。データマッパーのソースリストで指定されたヘッダー名を使用します。

ヘッダーセルの前後のスペースと改行は、列名から削除されます。

不要なレコードを含む入力ファイルでは、データを処理する前にスキップする行数を指定できます。表形式のデータに到達する前にスキップしなければならないヘッダーブロックがファイルに含まれている場合に便利です。

空のテキストセルをNULLではなく空の文字列として読み込むには、Keep Empty Text Cells As Empty String を選択します。

その他の Excel オプションには、次のフィールドがあります。

  • ワークシートで非表示の行を除外する(skip_hidden_rows)— ワークシートで非表示になっている行はインポートされません。
  • 数式エラーのセルを空欄ではなくエラーテキスト(#DIV/0!)としてインポートする(keep_error_cells)— 数式エラーのセルは、空欄ではなく #DIV/0! などのエラーテキストとしてインポートされます。
  • 有効桁数(significant_digits)— 各10進数をこの有効桁数に丸めます。Excelは15桁を保持します。
  • ワークシートの位置(sheet_index)— 名前で選択したワークシートの代わりに、ブック内の0から始まるこの位置にあるワークシートをインポートします。

インポートするワークシートでデータを含む最初のシートをインポート(sheet_first_with_data)を選択すると、データを含む最初のワークシートがインポートされ、それより前にある空のワークシートはスキップされます。どのワークシートにもデータがない場合は、ブックの最初のワークシートが読み取られます。

ブックのパスワード変数は、パスワードで保護されたブックを開きます。パスワード自体ではなく、パスワードを保持するワークフロー変数またはプロジェクト変数({xlsx_password} など)を入力してください。パスワードフィールドに変数参照以外が含まれるステップは、保存時に拒否されるため、パスワードがステップ、そのバージョン、そのコピーに現れることはありません。このルールの導入前に、入力されたパスワードを保持していたステップでは、そのパスワードが自動的に新しいプロジェクト変数に移され(アーキテクトにのみ表示されます)、現在はその変数を参照しています。

インポートの各エントリは、ワークシート、ブックで定義された名前付き範囲、または特定のセル範囲を選択します。この3つは対等であり、1つのインポートで複数のエントリにわたって混在させることができます。

  • ワークシート: シート全体を、名前で選択して読み取ります。
  • 名前付き範囲: ブック自体が名前を定義している範囲を読み取ります。名前付き範囲はピッカーでワークシートと並べて一覧表示されるため(後述の選択したファイル内のシートを検索を参照)、シートを選択するのと同じ方法で選択できます。
  • セル範囲: ワークシートやブックの名前に対応していない、特定の矩形の範囲を読み取ります。範囲が存在するシートを選択し、$ の後に範囲を入力します。次の3つの形式をサポートしています。
    • Sheet1$A1:J100 — 範囲を限定した形式です。
    • Sheet1$A1:J — 終端を指定しない形式です。A1 から、A列からJ列の最終行まで読み取ります。
    • Sheet1$A:BJ — 列全体の形式です。シートのA列からBJ列を読み取ります。AlteryxがExcel入力に対して書き込む形式です。

名前付き範囲は、XLSXおよびXLSMのブックから読み取られます。XLSB、XLS、ODSのブックでは、ワークシートとセル範囲を使用できます。

ブックには異なるデータを持つ多数のワークシートが含まれる場合があるため、現在のインポート処理でインポートするワークシートを選択できます。オプションは次のとおりです。

  • すべてのワークシート
  • 検索に一致するワークシート
  • 選択したワークシート

ワークシートの検索機能では、検索条件に一致するワークシートを含めることができます。検索条件には次のものがあります。

  • 次で始まる: ワークシート名が検索テキストで始まります。
  • 含む: ワークシート名に検索テキストが含まれます。
  • 次で終わる: ワークシート名が検索テキストで終わります。

選択したファイル内のシートを検索

Section titled “選択したファイル内のシートを検索”

シートを検索するボタンを押すとExcelファイルが開き、テーブルで使用できるワークシートと名前付き範囲が一覧表示されます。インポートに含めるワークシートや名前付き範囲のテーブル内のチェックボックスをオンにします。.zip ファイル内のブックも利用できます。そのワークシートと名前付き範囲が一覧表示されます。

シート対応表は、ブックごとに異なるワークシートのセットを読み取ります。読み取るワークシートごとに1行を持つシート対応表テーブルを選択し、そのブックの列にはブックのパスまたはファイル名、シートの列にはワークシートを保持します。シート対応表が設定されている場合、テーブルに名前のあるブックのみが、それぞれに一覧表示されたワークシートについて、テーブルの行の順序で読み取られます。ワークシートが空白の場合は、ブックの最初のワークシートが読み取られます。

選択したワークシートがないファイル

Section titled “選択したワークシートがないファイル”

インポートが複数のファイルを読み取る場合、選択したワークシートが含まれていないファイルや、ワークシート検索に一致するワークシートがないファイルはスキップされます。ステップは、スキップされたファイルとそのファイルにあるワークシートを示す警告を出して完了し、他のファイルは引き続きインポートされます。すべてのファイルがスキップされた場合でも、ステップは成功し、ターゲットテーブルは空のままとなり、その理由を説明する警告が表示されます。ワークシート名は、大文字と小文字も含めて完全に一致する必要があります。

スキップされたファイルは、Delete Files After Import がオンになっていてもフォルダーに残り、削除または修正するまで実行のたびに警告が表示されます。複数ファイルのインポートによる警告はステップに表示され、最大5件が一覧表示され、残りは件数で示されます。

データマッパーの設定

Table Data Mapper

データマッパーは、ソースデータの列をターゲットのデータテーブルにマッピングするために使用します。

マッパーの検査と入力

ソースを検査メニューボタンを使うと、ソースからターゲットへ列をマッピングする方法が増えます。

  • 両方のマッピングテーブルを入力: ソースデータテーブルのすべての値をターゲットのデータテーブルに反映します。これがデフォルトです。
  • ソースマッピングテーブルのみを入力: ソースデータテーブルのすべての値のみをマッピングします。ソース列の構成が変わった既存のワークフローを修正する際に便利です。
  • ターゲットマッピングテーブルのみを入力: すべての値をターゲットのデータテーブルのみに反映します。

ソース列とターゲット列のオプションだけでは足りない場合は、次のようにいくつかの方法でターゲットのデータテーブルに列を追加できます。

  • すべてを反映は、すでに存在しているかどうかにかかわらず、すべてのソース列をターゲットのデータテーブルに挿入します。
  • 選択を反映は、選択したソース列のみを挿入します。
  • ターゲット側を右クリックして行を挿入を選択すると、現在選択している行の直上に行を挿入します。
  • ターゲット側を右クリックして行を追加を選択すると、ターゲットのデータテーブルの末尾(右端)に行を挿入します。

列の削除

ターゲットのデータテーブルから列を削除するには、対象の列を選択し、右クリックして削除を選択します。

一覧になくなったソース列

ターゲットの行がソース列として指定している列が、ソースデータテーブルの一覧にない場合があります。たとえば、ソースを再度検査した後などです。ステップがそのような行を自動的に削除することはありません。代わりに、列名が警告マーク ⚠ の後ろに赤色で表示され、その上にカーソルを置くと、その列がソース列にないことが示されます。ユニオンなど複数のテーブルを扱うステップでは、各テーブルがそれぞれのソース列に対してチェックされます。

定数、式、または件数 (NULLを含む) の集計を設定した行は、ステップがそのソース列を読み取らないため、フラグが付くことはありません。ソースデータテーブルに列が一覧表示されていない間(たとえば、ソースを初めて検査する前)は、何もフラグが付きません。

フラグが付いた行が残ったままステップを保存すると、古い列が見つかりましたダイアログに、該当する行が所属するタブまたはテーブルごとに表示され、次の3つの選択肢が提示されます。

  • すべて削除して保存 — フラグが付いた行を削除してから保存します。
  • このまま保存 — ステップをそのまま保存します。
  • キャンセル — 保存せずにステップに戻ります。

行を残したまま警告を解除するには、その列をソースデータテーブルに追加し直すか、ソースデータテーブルに一覧表示されている列を選択します。

列のデータ型

ターゲットの各列にはタイプがあります。ソースから反映した列はソース列のタイプを引き継ぎます。手動で追加した行はテキストから始まるため、実際に必要なタイプをタイプで設定します。合計や並べ替えを行う列には数値型や日付型が必要です。テキストはテキストとして並べ替えられ、合計されるためです。

タイプがまったく設定されていない列を含んだままステップを保存しても、ステップは実行されます。タイプは、ステップの開始時に、その列が読み取るソース列から判定されます。読み取り元がない場合はテキストとして扱われます。たとえば、SQL抽出ステップの列は、マッピングされたソースではなく、記述したクエリから決まります。また、同じ列名でタイプが一致しないソースが複数ある場合は、いずれかを推測せずテキストが使われます。推測が外れるとウェアハウスが拒否する変換が生じる可能性がありますが、どんな値もテキストには変換できるためです。

列がどうあるべきかを指定する方法は、引き続きタイプを自分で設定することです。未設定のままにすると、ソース列がたまたまそうであるタイプをそのまま受け入れることになります。

列の順序の変更

ターゲットのデータテーブルの列を並べ替えるには、対象の列を選択します。次のどちらかを使用できます。

  • 一括移動の矢印: 右上の矢印から目的の移動オプションを選択します
  • コンテキストメニュー: 右クリックして、先頭へ移動、上へ移動、下へ移動、末尾へ移動のいずれかを選択します。

結果を重複のないレコードのみに絞り込む

重複のないオプションのみを返すには、重複排除メニューオプションを選択します。ソースの各列にチェックボックスが表示されます。重複を排除したい列の横にあるチェックボックスをオンにすると、重複のない結果のみが返されます。

状況によっては、代わりに集計の使用を検討することをお勧めします。

重複排除では、最初に見つかった一意のレコードを残し、残りを破棄します。実行間で一貫性が必要な場合は、データに並べ替えを適用することをお勧めします。

集計とグループ化

結果を集計するには、集計メニューオプションを選択します。ターゲットのデータテーブルの各列に選択ボックスが表示されます。列ごとに適切な集計方法を選択します。

ソースを検査で列が入力される際、数値列は、名前が id、customer_id、Order No、CustomerKey のように識別子と読み取れる場合、テーブルでキーに設定されている場合、または結合でキーとして使用されている場合に、合計ではなくグループ化から始まります。

  • グループ化
  • 合計
  • 最小
  • 最大
  • 最初
  • 最後
  • 件数
  • 件数 (NULLを含む)
  • 平均
  • 標準偏差
  • 標本標準偏差
  • 母標準偏差
  • 分散
  • 標本分散
  • 母分散
  • 高度な非グループ化

式、クレンジング、定数などのデータマッパーの高度な使い方については、データマッパーの高度な使い方を参照してください。

1つのソース列を複数のターゲット列に使用する

Section titled “1つのソース列を複数のターゲット列に使用する”

1つのソース列で、複数のターゲット列にデータを渡せます。同じソース列を、それぞれ独自の名前、型、式を持つ2つ以上のターゲット行にマッピングします。たとえば、Amount をテキスト列として一度読み取り、数値列としてもう一度読み取ったり、同じセルから2つのテキスト列を作成したりできます。数値のターゲットでは、式が実行される前にソースが変換されることはなくなったため、1,500 のような値を式で先にクリーンアップできます。

これは、データマッパーを使用するCSVのインポート以外のすべてのファイルインポートで同様に機能します。対象は、Excelのインポート、固定幅、JSON、Avro、Parquet、DBF、XML、YXDBです。

Table Data Filters

柔軟性を最大限に高めるため、データフィルターはソースデータとターゲットデータの両方で使用できます。データセットが大きい場合は、ソース側で行を絞り込んでおくと、残りの処理を小さなデータセットに対して実行できるため、特に効果的です。

データのサブセットを選択

このフィルタータイプでは、指定した条件に基づいて、受信するソースデータをフィルター処理できます。

結果データにセカンダリフィルターを適用

このフィルタータイプでは、変換後の結果データに対して、指定した条件に基づくフィルターを適用できます。 変換後の結果にフィルターを適用できるため、複雑な計算、集計、ウィンドウ関数の結果に基づいて行を除外できます。

最終データテーブルのスライス(制限)

行のスライス機能では、範囲と開始位置に基づいて、結果セットの行数を制限できます。

フィルター構文

フィルター構文には Python SQLAlchemy を使用します。これは他の式と同じ構文です。

式の例と式関数については、式のセクションを参照してください。