「ワークフローに取り込む必要のあるファイルが 数十億個あります。ファイルの数が多すぎて、 個々のデータ入力ツールを使用できません。データを入力するための最善の方法は何ですか?」
- すべての Alteryx ユーザーより
一度に複数のファイルを取り込むことは、困難な作業のように見えますが、これはすばらしい時間節約ワークフローを開発するために必要な作業の1つです。では、これらのトリッキーなファイルを問題なく取り込むのに役立つ便利なフローチャートを次に示します。

1. データ入力ツールとワイルドカード
ほとんどの場合、データを取り込むためには データ入力ツールが必要です。データ入力ツールは最も簡単に素早くデータを取り入れる素晴らしい方法です。

要件:
- すべてのファイルが同じディレクトリにある必要があります。
- すべてのファイルは同じタイプである必要があります (e.g. csv, xlsx, yxdb)。
- すべてのファイルは同じスキーマを持っている必要があります。 (同じフィールド名で同じ順序で同じデータ型である必要があります。)
入力方法:
- ディレクトリ内のファイルの1つを取り込むようにデータ入力ツールを設定します。
- 接続するファイル名を入力するフィールドで、ファイル名(またはファイル名の一部)をアスタリスク(*)に置き換えます。アスタリスクは、本質的にすべての代わりとなるワイルドカードです。

したがって、上記のフローチャートでは、この接続フィールドはディレクトリC:\ Users \ akoszycki \ Desktop \ Input Data \ Data to Inputを検索し、「CO StoreFile-」で始まり「.xlsx」で終わるすべてのファイルを取得します。
結果:
- これらのファイルのすべてのデータは、互いに積み重ねられます。
- データがどのファイルからきたものか確認したい場合は、データ入力ツール設定の[ファイル名をフィールドとして出力]オプションを使用してください。


2. ファイルパスを使用してダイナミックにデータを入力
時には、宇宙があなたに対する陰謀を企て、ワイルドカードを使うことができないこともあるでしょう。なぜこんなことが起きるのでしょう?もしかして、すべてのファイルを同じディレクトリに配置することは不可能かもしれません。あるいは、ワイルドカードで取得したくないファイルがディレクトリに大量にあるのかもしれません。この場合、ファイルパスのリストと 動的入力ツールを使用してデータをフィードする必要があります。
要件:
- すべてのファイルは同じスキーマでなければなりません。 (フィールド名が同じで 同じ順序に並び 同じデータ型である必要があります)
- インポートするファイルパスのリスト。

- 動的入力ツールの「入力データソーステンプレート」設定に入力するファイル。このファイルは、ツールがフィールドスキーマのベースとなるために常に利用可能である必要があります。入力するファイルから任意のファイルを選んでください。ただし前述のファイルリストにない場合は入力されません。
入力方法:
- 通常のデータ入力ツールと同様に、動的入力ツールで入力データソーステンプレートを設定します。
- このツールには、ファイル名のリストに基づいて接続フィールドを更新する「データソースのリストを読み取る」オプションが含まれています。

テーブルの操作:
Microsoft ExcelやAccessデータベースファイルなど、一部のファイルタイプにはテーブルまたはシートの仕様情報が必要です。シート名またはテーブル名が常に同じである場合は、動的入力ツールで問題は起きません。ただし、ファイルの入力元のテーブルまたはシートが異なる場合は、次のようなエラーが発生する可能性があります...

そのような場合は、ファイルパスの最後にテーブル/シートを‹‹ファイルパス›› ||| ‹‹シート/テーブル››の形式で追加する必要があります。たとえば、上記のフローチャートでは、次の簡単な式を使用して、Excelファイルからインポートするワークシートとして「Sheet1」を指定しています:[FullPath]+"|||Sheet1$".
3. ファイルパスとパッチマクロ
どうやっても厄介なエラーメッセージが表示され、ファイルが入力できない場合は、ついに”最終兵器”であるバッチマクロを発動するときです。この最後の方法の最初のステップは最も作業が困難ですが、そんなときは孔子の格言を思い出してください..

バッチマクロは、ファイルごとにワークフローを1回実行し、毎回データ入力ツールを更新します。一般的には次のようになります

バッチマクロは、同じフィールドスキーマを持つファイルをエラーなしで自動的に読み込みます。しかし、フィールドスキーマがファイルごとに異なる場合はどうなりますか?
こんな時、バッチマクロが実力を発揮します。 インターフェース Designer ([表示]> [インターフェースDesigner])の出力モードのアイデアフィルター
に移動しましょう。 「名前による自動設定(すべての反復が実行されるまで待機)」または「位置による自動設定(すべての反復が実行されるまで待機)」のいずれかを使用します。 「名前による自動設定」は同じ名前のフィールドを結合し、「位置による自動設定」はファイル2のフィールド1の上にファイル1のフィールド1を結合します。

インターフェース Designer を設定したら、マクロを保存してワークフローに挿入できます(キャンバスの[挿入]> [マクロ...]を右クリックします)。プロセスがどのように機能するかを確認するためのダミーファイルとバッチマクロを含むワークフローの例が添付されています。
これでデータが入力できるはずです!コメントや質問がある場合はカスタマーサポートまでご連絡ください。