Alteryxツールアイコン「データ出力ツール」(Output Data Tool)をご紹介します
データ出力ツール(Output Data Tool)
[入出力]カテゴリの[データ出力]ツールを紹介します。
概要
ワークフローで作成したデータをファイルで出力したり、データベースへ出力する機能を提供します。
設定項目(共通)
初期状態は以下の通りとなります。オプションの部分は出力する形式によって大きく変わりますのでご注意ください。
共通項目としては以下の通りとなります。
項目名 | 内容 |
---|---|
ファイルごとの最大レコード数 | 1ファイルの最大レコード数を指定します。後ほど詳しく説明します。 |
ファイル形式 | 出力ファイルのファイル形式を選択します |
フィールドからファイル/テーブル名を取得する | 入力データを使用して動的にファイルやテーブルを変更します。後ほど詳しく説明します。 |
対応ファイル形式は以下の通りとなります。
その他、以下データベースに対応しています。正確なリストについては、Alteryx社のホームページを参照ください。
- Microsoft SQL Server
- Oracle
- Hadoop
- ODBC
- OleDB
- Oracle OCI
- Teradata Bulk
- ESRI
なお、DBは通常64bit接続ですが、32bit接続にも対応しています。ODBC経由で各DBに接続する場合は、各社が公開しているネイティブドライバをご利用ください。
設定項目(個別)
代表的な個別の設定について説明します。
Excel
エクセル系の形式(xlsx、xls、xlsm)を選択するとオプションは次の様になります。
ファイル形式選択時にシートを入力します。既存ファイルであっても手入力です。
また「ファイルまたはデータベースへ書き込む」に手入力する場合には
次の構文でファイル名とシートを指定します。
出力オプション
Excel出力時には次の出力オプションがあります。
項目 | 内容 |
---|---|
既存のシートに追加 | 既存のワークシートにデータを追加します。 |
上書きシート(ドロップ) | 既存のワークシートを上書きします。既存のワークシートのデータは失われます。 |
ファイルを上書き | 既存のファイルを削除して、ファイルを作成します。既存ファイルのデータは失われます。 |
新しいシートを作成する | ワークシートを新規作成します。既存の同名シートがある場合はエラーになります。 |
フィールドマップを追加
データベースと同様になります。後ほど詳細説明します。
CSV
CSVを選択するとオプションは次の様になります。
区切り文字、コードページに付きましては「データ入力」ツールを参照願います。
最初の行はフィールド名を含む
チェックをすると、CSVファイルの1行目にフィールド名を出力します。
出力フィールドを引用
出力フィールドの引用符設定になります。「自動」「常に」「非表示」の3つがあります。基本は「自動」で問題ありません。
引用符有りにすると下記の様にデータを”や’(システムによります)で囲みます。ExcelでCSVを開くとわかりませんが、テキストエディタなどで確認すると分かります。
利用したいシステムに応じて適切なオプションを選んでください。
行終了スタイル
改行コードのスタイルです。「Windows」「Unix」「Mac」の3種類から選択します。出力したCSVを使用するシステムに合わせて設定します。
BOMを書き込む
バイトオーダーマークの有無を設定します。バイトオーダーマークとはプログラムがテキストデータの読み込むを行う時にUnicode及びエンコーディングを判断するために使用されます。基本的にはチェック有りです。
データベース
データベース系ではオプションは次の様になります。
またデータベースを選択時にTableを指定画面が開きます。テーブルは既存であっても手入力です。
出力オプション
データベースに出力する場合は次の出力オプションがあります、
項目 | 内容 |
---|---|
新しいテーブルを作成する | 新規テーブルを作成しますが、テーブルが既存の場合は上書きしません。 |
既存のものを追加する | 既存のテーブルにデータを追加します。 |
データの削除と追加 | 既存のテーブルからデータを削除してから追加します。テーブル構造は変更されません。 |
テーブルを上書きする(ドロップ) | テーブルを削除して、新規テーブルを作成します。テーブル構造は変更されます。 |
更新:更新エラーの警告 | レコードの更新を行います。更新ができなかった場合は警告を結果ウィンドウに出力します。 |
更新:更新の失敗時のエラー | レコードの更新を行います。更新ができなかった場合はエラーを結果ウィンドウに出力します。 |
更新:新しい場合挿入 | レコードの更新を行います。新規の場合は挿入を行います。 |
注意更新はデータベーステーブルにPrimaryKeyが設定してある必要があります。
フィールドマップを追加
デフォルトはフィールド名でマッピングされますが、「フィールドマップを追加」の「カスタムフィールド」を使うと既存のデータベース更新を行う場合にデータベースのフィールド名とAlteryxのデータのフィールド名が異なった場合でもデータベースの更新が可能です。
SQLステートメントの事前作成/SQLステートメントの事後作成
SQL命令を実施できます。Alteryxのツールを実行する前か後に実行します。SQL構文につきましてはご使用のデータベースの仕様に従ってください。
前/後のSQL DROP TABLEのエラーを無視する
チェックを入れるとDrop Tableのエラーが無視されます。
テーブル/フィールド名のSQLスタイル
SQLの引用符の有無の設定です。
トランザクションサイズ
デフォルトは0(全レコード)になってます。細かな設定を行うとデータベースの一時テーブルを多量に消費するため、1000以上の設定が推奨されます。
トランザクションメッセージを表示する
「結果」ウィンドウに処理が完了したトランザクションまでの書き込まれたレコード数が表示されます。
共通オプションの詳細説明
前述の「ファイルごとの最大レコード数」「フィールドからファイル/テーブル名を取得する」について説明します。
ファイルごとの最大レコード数について
共通オプションの「ファイルごとの最大レコード数」ですが、指定した値で1ファイルを出力します。従って設定値以上のレコードを持つデータを出力する場合、ファイルテーブルは複数出力されます。
100レコードを持つデータ出力ファイル名を「test」形式をCSV「ファイルごとの最大レコード数」10で出力した場合は次のように結果ウィンドウに出力されます。
ファイルは合計10ファイル生成されています。ファイル名は2ファイル目から指定したファイル名と「_」「連番の数字」で生成されます。
フィールドからファイル/テーブル名を取得する
このオプションは入力されたデータフィールドを参照して動的にファイル名やテーブル名を変更できます。
ファイル/テーブル名の変更パターンは以下があります。
項目名 | 内容 |
---|---|
接尾辞をファイル/テーブル名に付加する | 指定したフィールドの値をファイル/テーブル名の後に付加します。 |
接頭辞をファイル/テーブル名に付加する | 指定したフィールドの値をファイル/テーブル名の前に付加します。 |
ファイル/テーブル名を変更 | 指定したフィールドの値をファイル/テーブル名にします。 |
ファイルパス全文を変更する | 指定したフィールドの値をフルパスファイル名にします。 |
いずれの場合も指定したフィールドの値で複数ファイルの生成/グループ化を行います。
注意Alteryxではフォルダの作成はできない為、ファイルパス全文を変更する場合は出力フォルダが存在する必要があります。
オプション 「フィールドを出力に保持」のチェックを外すと、ファイル/テーブル名に使用したフィールドは出力されません。
実用例
実行年月日付きファイルとして出力する。
よくファイル名の後ろに「20180904」など日付を入れて保存する事があると思います。これをAlteryx実行日で作成する方法をご紹介します。
ファイル出力前に「現在日時」ツールで現在日時を生成し「フィールドを追加」ツールで追加します。「出力」ツールで作成された現在日時のフィールドを「フィールドはファイル名またはファイル名の一部を含む」に指定し、出力ファイル名は「test」、「接頭辞をファイル/テーブル名に付加する」を選択して出力します。
詳細な記事を作成しましたので、ご覧いただければと思います。
ファイルをフィールドを使ってグループ毎に出力
例えば、地域のフィールドを持つデータを「地域毎にファイルを生成して出力」するとします。元になるデータは次のとおりです。
地域 | Value |
---|---|
東京 | 10 |
大阪 | 20 |
東京 | 30 |
東京 | 40 |
大阪 | 50 |
大阪 | 60 |
「出力」ツールで「フィールドはファイル名またはファイル名の一部を含む」に「地域フィールド」を指定し、「ファイル/テーブル名を変更する」を選択して出力します。
出力結果は以下の様になります。「東京.csv」「大阪.csv」の2ファイルが生成され内容もグループ分けさました。
この様に「データ出力」ツールも応用すると大変便利なツールです。
応用記事
※Alteryx Version 2018.2.5時点での情報です