ServerAlteryx『カスタマーストーリー』を支えるツール特集2019年09月20日じょんすみす(125)4こんにちは、小澤です。Serverの基本的に使い方として、Designerで作成したワークフローをアップロードします。アップロードされたワークフローはほとんどの場合、Desingerで実行した際と同じ挙動をしますが、一部異なるものもあります。Dataツールによるファイルの出力先について解説します。パッケージファイルとアセットAlteryxではワークフロー内の各ツールで利用する外部リソースをアセットという単位で管理しています。ツールに付随するアセットの一覧は、設定左側のメニューから立方体のアイコンを選択することで確認できます。Dataツールであれば、出力ファイルがアセットとして付随している状態となっています。Windowにチェックを入れることで表示されるようになります。このアセットに含まれるファイルはyxzpファイルとしてパッケージングした際にパッケージ内に含まれる対象となります。DevelopersIOパッケージ内にファイルを含みたくない場合は、このアセット一覧でチェックを外すか、yxzpファイルを作る際に選択が可能です。Serverにワークフローをアップロードする際には、yxzpファイルを作成する時と同様にパッケージングされます。その際、パッケージに含める内容の設定も可能です。DataツールがDesignerで動かした際と異なる挙動をする"という話になります。厳密には、すべての場合ではなく、特定の条件を満たした場合のみ異なる動きをします。その挙動を説明するためにワークフロー実行時のパスについて説明します。ワークフローの実行パスAlteryxのワークフローはファイルとしてどこかに保存されます。この時、保存されているワークフローが保存されているパスはEngine.WorkflowDirectoryという変数に保存されています。Formulaツールでこの変数を利用することでパスを取得することが可能です。Dataツールなどで、ファイルを相対パスで指定しいる場合にはこのパスが基準となります。Dataツールの出力先を指定した場合の絶対パスでの出力先は以下のようになります。C:\Alteryx\workflows\blog\outputs\data3.yxdbパッケージ化した際のアセットのパス続いて、yxzpでパッケージングした際のアセット配置先について説明します。パッケージングされたワークフローはアセットも含めた1つのファイルとなります。実行に際しては、yxzpファイルを展開したのち、その中に含まれるワークフローを実行することになるわけですが、パッケージングする際には利用者がどのパスに展開するかわかりません。リソースも含めて1つにできるパッケージングなのだから、展開するパスを気にせずに実行できるようになっててほしいですね。そこで、yxzpファイルでは、アセットとして含まれるリソースを参照するものをパッケージ内の相対パスに置換します。始まる相対パスに置き換わってるのが確認できるかと思います。Serverにワークフローをアップロードする際もパッケージングされるため、同様に相対パスに置き換えられるわけです。Serverでの挙動の話に移ります。Serverではワークフローがアップロードされた際にパッケージングしてMongoDBに保存するワークフローが実行される際にはMongoDBから取得したパッケージを一時フォルダに展開して実行する実行が完了したら一時フォルダごと削除するという動きをします。始まる相対パスのためどこに展開しても実行可能というわけです。Server独自の動きが入ります。一時フォルダを削除する前にその中に含まれる出力ファイルをすべてMongoDBに保存するのです。UI上から一覧で確認することが可能になります。出力ファイルをアセットに含めなかった場合の挙動さて、リソースをアセットに含めてパッケージングするというやり方ですが、意図的にアセットに含めない方法もあります。冒頭で紹介したアセット一覧ですが、ここで左側のチェックを外すことで、そのリソースはアセットに含まれなくなります。以下への置き換えが行われません。Dataツールで指定している出力ファイルをアセットから外した場合は出力先のパスの変更が行われない、というわけです。Alteryxでは出力先のフォルダが存在しない場合自動的に作成するようなことはしないので、この状態でパッケージングしたワークフローを他者に渡すとファイル出力ができずにエラーとなる可能性があります。Serverが稼働している環境上でそのパスにファイルを出力しようとします。フォルダを作成しておく必要があります。Serverではワークフロー実行後に一時フォルダを削除するという挙動と併せると、置き換えなかったパスは削除対象に含まれないため、そのままファイル自体が残り続けます。これによって、出力をファイルサーバなどに集約している場合はDesigner実行環境からもServer環境からもアクセス可能にしておくことで動揺に出力するといったことが可能になります。削除対象にならないのと同様、MongoDBへの出力対象ともならないことには注意が必要です。UI上での出力ファイル一覧にも表示されません。完全に管理管轄の対象外となるわけです。Dataツールを2つ配置して、1つはアセットに含め、もう1つは含めないといった運用が必要になります。出力先を相対パスで指定してた場合はどうなるか最後に、出力ファイルを相対パスで指定しており、かつアセットに含めない場合どこに出力されるのか確認しておきます。Server上で一時フォルダがどこに作られるのか確認できます。ランダム(のような)文字列のフォルダが作成され、ここが一時フォルダとなります。そのため、相対パスでのしていは以下のようになります。C:\ProgramData\Alteryx\Service\Staging\<一時フォルダ>\outputs\data3.yxdbこれらも絶対パスで指定と同様、フォルダはあらかじめ存在している必要があります。ようなその配下にサブフォルダがある前提のワークフローは出力がエラーとなります。Commandツールでフォルダを作るなどで実現できなくはないですが、基本的にはエラーになると考えておいた方がいいでしょう。Serverにワークフローをアップロードした際の出力先とアセットについて解説しました。複雑な考え方が必要になるため、色々なレベルの人が使う前提であれば常にアセットに含めるようにしてしまうのを基本としつつ、ファイルサーバに置く必要があるなどの状況に応じてやり方を工夫するといいでしょう。Alteryxの導入なら、クラスメソッドにおまかせください日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。ACEの人やってます。機械学習をしたりHadoopをいじったりしてるエンジニア。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。