このページは解答編です。
↓ネ
↓タ
↓バ
↓レ
↓防
↓止
答えと解説
設問はこちらでした。
P-094: 093で作成したカテゴリ名付き商品データを以下の仕様でファイル出力せよ。
ファイル形式:CSV(カンマ区切り)
ヘッダ有無:有り
文字エンコーディング:UTF-8
解答ワークフローは以下のようになります。
データ出力ツール
データ出力ツールは、名前そのままの機能で、数多くの種類のフォーマットでデータをAlteryxの外部に出力するツールです。ファイル、データベース両方ともこちらのツールを使います。
ただし、一部のクラウドサービスへの出力などについては専用のコネクタが提供されていることがあります(Tableau Server/Cloud、MongoDB、SharePoint、AmazonS3、Salesforce、Google Sheets、Google Big Query、Power BI等)。Community Galleryでご確認ください。
なお、In-DB機能を使ってワークフローを作成している場合はデータベース内での書き込みとなるためIn-DB出力ツールを使ってください。
設定は以下のとおりですが、ファイル形式によってオプションは変わります。今回はCSVファイルへの書き込みですので、CSVファイルの設定をご紹介します。
まず、一番上「ファイルまたはデータベースへの書き込み」はファイルパスを指定する部分です。
「フィールドからファイル/テーブル名を取得する」は、非常に便利なオプションですが、ここでは割愛したいと思います。フィールドの値からファイル名を指定したり、ファイルを分割したりできるオプションです。
その他のオプションは以下のとおりです。
No | 名前 | 値 | 説明 |
---|---|---|---|
1 | ファイルごとの最大レコード数 | 初期値は空白。整数の数値を入力可能。 | ファイルを指定した行数で分割し出力することができます。ファイル形式によってはサイズ(レコード数)の制限がある場合があるため(例えば旧Excel形式など)、そのような場合に便利です。 |
2 | ファイル形式 | 初期値はyxdb。今回はCSVのオプションなので、CSVとなります。 | ファイル形式を指定する場所です。ここで指定したファイル形式によってオプションは変わります。 |
3 | 区切り記号 | 初期値は「,(カンマ)」 | 値を区切る区切り記号を指定します。タブは\t、空白は\s、改行コードは\nを指定します。 |
4 | 先頭行にフィールド名を含める | 初期値はチェックが入っています。 | チェックが入っていると、先頭行がフィールド名になります。たまにCSV形式でもフィールド名が不要な場合や、テキストとして出力したい場合にチェックを外します。 |
5 | 出力フィールドを引用 | 初期値は「自動」。「常に非表示」「常時」から選択可能。 | 日本語訳がおかしいですが、改行コードなどを含むセルがある場合でもセル内の改行と認識されるようにするにはダブルクオテーションで囲む必要があります。それをどのようにするか決めるオプションです。 |
6 | コードページ | 初期値は「Shift-JIS」です。 | 適切な文字コードを指定しないと文字化けの原因となります。日本語の場合は「Shift-JIS」「UTF-8」が標準的です。 |
7 | 行終了スタイル | 初期値は「Windows」です。Unix、Macから選択できます。 | 改行コードのことです。Windowsは通常CRLFです。UnixはLF、Mac(といいつつMacOSバージョン9までのことを指していますが)はCRです。 |
8 | BOMを書き込む | 初期値はチェックが入っています。 | 基本的にはデフォルト設定で問題ないと思いますが、出力したファイルを使うシステム側でBOMが不要なことがあります。ケースバイケースで設定してください。Excelで使う場合、UTF-8はBOMありだと文字化けしません。 |
実際のワークフローを作成する
それでは早速ワークフローを作成しましょう。とはいえ、1ツールで終わります。データ出力ツールで以下の通り設定します。
あとはワークフローを実行してください。
なお、ファイルの作成場所は、ワークフローのあるフォルダの直下にあるdataフォルダの中になります。
なお、ワークフローがあるフォルダの直下に「data」というフォルダがなければエラーが発生します。その場合はフォルダを作成するようにお願いします。
念のため指定の形式で出力できているか確認しましょう。今回はWindows11付属のメモ帳で確認します。ちなみに、古いWindowsのメモ帳では確認できない項目があるので、テキストエディタ(TeraPad等)を使うことをおすすめします。
ポイントは以下のとおりです。
- ファイルの拡張子がcsvになっているか?
- 1行目にフィールド名が格納されているか?
- 区切り記号がカンマになっているか?
- UTF-8形式となっている?(文字化けしていないか?)
まとめ
今回はファイルを出力する問題でした。指定通り行えば特に問題ないかと思います。ただ、最近クラウドサービスがUTF-8を採用していたり、Windowsは相変わらずShift-JISであったり、文字コード的には昔よりは集約されたきた感じもしますが、気をつけるポイントかと思います。
コメント