
【レポート】セッション「Best Practices from Toyo Engineering for using Alteryx Server(東洋エンジニアリングにおける Alteryx Server 活用のベストプラクティス)」– Alteryx Inspire 2025 #AlteryxInspire
こんにちは、まつおかです。
2025年5月12日(月)~5月15日(木)まで、アメリカ・ラスベガスで開催されたAlteryxの年次カンファレンスイベント「Inspire 2025」に現地参加してきました。
当エントリではイベント4日目に行われたセッション「Best Practices from Toyo Engineering for using Alteryx Server(東洋エンジニアリングにおける Alteryx Server 活用のベストプラクティス)」のレポートをお届けします。
セッション概要
当セッションの概要は以下のとおりです。
概要
Discover our 6-year journey with Alteryx Server. Learn how we maintain governance with Server Usage Dashboards, boost WF speed with multi-node deployment, and build an Alteryx Server-oriented system using the Server API.
Alteryx Server との6年間の歩みをご紹介します。
Server Usage ダッシュボードでガバナンスを維持し、マルチノード構成でワークフローの処理速度を向上させ、Server API を活用して Alteryx Server 中心のシステムを構築する方法をご覧ください。
登壇者
- Daisuke Yamaguchi 氏
- Senior Data Engineer at Toyo Engineering Corporation
- Kosuke Uchihashi 氏
- Senior Data Engineer at Toyo Engineering Corporation
セッションレポート
アジェンダ
- Introduction:東洋エンジニアリングの紹介とAlteryx製品の活用状況
- Server Governance:MongoDBを活用したServerガバナンスの取り組み
- Server Scale Out:Serverのスケールアウトによる性能とセキュリティ改善
- Server API:Server APIの機能と一般的なユースケース紹介
- Tips:効果的な運用・保守のためのコツ紹介
1. Introduction:東洋エンジニアリングの紹介とAlteryx製品の活用状況
東洋エンジニアリングは、グローバルなEPC(設計・調達・建設)企業で、数百万個のコンポーネントからなる石油化学プラントの建設を手掛けています。
巨大プロジェクトでは500万ページを超えるドキュメントが作成され、手作業での対応はほぼ不可能な状態でした。そのため業務のデジタル化が急務であり、その解決策としてAlteryxを活用しています。
2018年にAlteryx Desiner、2019年にAlteryx Serverを日本本社で導入し、2022年以降は、インド、韓国、インドネシアといった海外拠点への展開も始まり、2025年には1,200以上のワークフローと500以上のスケジュールを運用しています。
また、2019年と2024年にはAlteryx Maveryx Awardを受賞、東洋エンジニアリングから3名がAlteryx ACEに認定されております。
2. Server Governance:MongoDBを活用したServerガバナンスの取り組み
Alteryx Serverのガバナンスを改善するため、以下の3つをモニタリングしています。
- 長時間実行されているジョブ
- 長時間キューに入っているジョブ
- エラージョブとその詳細
また、モニタリングのために2つの社内ツールを開発しました。
-
Power BIダッシュボード
-
MongoDBから取得したログを可視化
-
ボトルネックを監視し、問題発生時にも迅速に対処
-
ジョブのタイムラインダッシュボード
- 結果コード(成功、エラー、警告)、ジョブの状態(キュー中、実行中)、ワーカーノードの名前、1時間以上実行しているジョブのフラグなどで絞り込み可能
-
スケジューラーの予測ダッシュボード
- スケジューラーの混雑具合などが把握でき、スケジュールの最適化に活用
-
-
エラー通知機能
- エラーが発生したジョブの情報をスケジュールの所有者へ通知(Microsoft Teams)
- 通知にはジョブ名、完了日時、ワークフローのタグが含まれる
- 通知によりユーザーが不要なスケジュールの停止や修正対応を実施
MongoDBからのデータ取得のコツ
Alteryx ServerのMongoDBデータベースには、主に2つのスキーマがあります。
- Alteryx Gallery:Server UIに関する情報(コレクション、サブスクリプション、ユーザーなど)
- Alteryx Service:サービス層の情報(キュー、ワークフロー実行結果、スケジュールなど)
データの中にはBlob形式(構造化されていないバイナリデータ)で保存されているものもあり、情報を抽出するためにマクロを使用しパースする必要がありました。
- データ取得には以下の2ステップが必要
- データ入力ツールを使いMongoDBからデータを取得(ODBC接続設定が必要)
- Blobデータをパース
-
コミュニティページからデータをパースするマクロを取得可能
-
MongoDBのデータ活用により、Serverのガバナンスの向上が可能です。
データの抽出には公式リファレンスを参照してください。
3. Server Scale Out:Serverのスケールアウトによる性能とセキュリティ改善
Alteryx Serverは4つのコンポーネント(コントローラー、データベース、ワーカー、ギャラリー)で構成されています。
マルチノード構成ではコンポーネントを複数のマシンに分散配置することで、スケーラビリティ、性能、可用性を向上することができます。
- 複数のワーカーノードを用意し、実行能力の向上が一般的
- Additional Capacity License(追加キャパシティライセンス)
- 通常のライセンスとは別で提供
- 別のServerに物理CPU2基を追加可能(物理コアであり、仮想コアではない)
マルチノード構成活用紹介
以前、日本本社のAlteryx Serverはシングルノード構成でしたが、インドにあるデータベースへのアクセスにネットワーク遅延が発生し、ワークフローの実行時間が非常に長くなっていました。
-
対応策:インドにローカルワーカーノードを設置
-
インドのデータベースに関するジョブはインドのワーカーに処理させる構成に変更
-
データソースとワーカーノードは物理的に近い場所に設置することでパフォーマンス向上
-
実行時間が2時間→15分に短縮(すごい!)
-
ファイアウォールルールの追加も最小限にでき、セキュリティも向上
-
4. Server API:Server APIの機能と一般的なユースケース紹介
Alteryx Serverのワークフロー実行は、3つの方法があります。
- ギャラリー上での手動実行
- スケジュール実行
- Server APIを通じた実行(REST API)
- Pythonなどのプログラミング言語からAPIを呼び出すことで、外部プログラムやアプリケーションからワークフローの自動実行が可能
以下はServer APIを使用しジョブを作成・実行し、出力を取得する一連の流れです。
- トークンAPIエンドポイントにアクセスしアクセストークンを取得
- すべてのAPI呼び出しにはアクセストークンによる認証が必要
- ジョブ作成のAPIエンドポイントを呼び出しジョブを作成
- 新たに作成されたジョブのIDが返される
- ジョブのステータス確認用APIを繰り返し呼び出す
- ジョブのステータスは「キュー中」→「実行中」→「完了」と変化
- ジョブが「完了」になったら出力ファイル取得用APIを呼び出し成果物を取得
以下はServer API経由でワークフローを実行するPythonコードの一例です。
- ワークフローの実行には、以下の情報が必要
- ギャラリーのURL
- クライントID
- クライアントシークレット
- ワークフローID
- クライアントIDとクライアントシークレットを使用しアクセストークンを取得
- ジョブを作成
- ジョブステータスが「完了」になるまで監視
- 出力ファイルを取得しローカールに保存
プロセスの進行状況は管理画面でもリアルタイムで確認できます。
初心者にオススメのSwagger
Server APIはワークフローの実行だけでなく、Server上のさまざまな資産の管理にも利用できます。
初めて利用する方はギャラリーのUIからアクセスできる「Swagger」を利用することで、APIの使い方からレスポンスの中身も確認が可能です。
※ Swagger:RESTful API を設計・構築・記述・テスト・ドキュメント化するためのオープンソースのフレームワークおよびツール群
5. Tips:効果的な運用・保守のためのコツ紹介
■ マクロの管理
私たちのチームでは、50以上の標準マクロをスケジュール済みワークフローで使用しています。
ユーザーからの改善要望やバグ報告、仕様に応じたマクロの改修が頻繁に求められていますが、マクロ更新のたびに再パブリッシュとスケジュールの再設定は現実的ではなく、運用の手間とダウンタイムが課題でした。
-
解決策:UNCパス経由でのマクロ読み込み
- 「マスターマクロ」をServer外部(Serverからアクセスできる共有フォルダ)に保存
- UNCパス経由でマクロを読み込み
- マクロパブリッシュ時「Manage Workflow Assets」メニューでマクロを添付しないよう設定
- ギャラリー内でのバージョン管理はできないがマクロ更新時、再パブリッシュ・再スケジューリング不要で全てのワークフローに即座に反映
■ 保守性
マクロの数が100を超え、サービスレベルを維持するために複数の開発者が協力して保守できる体制が求められました。
-
解決策:開発ガイドライン
-
ツールの整列:視認性を高め、全体像を把握しやすく
-
ツールのグループ化:コンテナを使用し入力・出力・処理を分離
- フローは左から右へ進め、サブプロセスの区別を明確化
- コメントを多用
-
変更履歴の記載:物語形式で変更内容を記録
-
これらのガイドラインは大規模なワークフローでこそ威力を発揮します。
以下は標準マクロの一例ですが、保守担当になった最初は圧倒されたものの、ガイドラインに沿って整備されていたことで誰のサポートも受けずに作業を始められました。
現在ではマクロの保守を複数の開発者で分担しています。
さいごに
以上、東洋エンジニアリング様のセッション紹介でした。
Alteryxを導入されて6年、そしてInspireでは3年連続登壇されている東洋エンジニアリング様。今まで積み重ねた経験と現場での工夫の数々は本当に素晴らしく、まさに「さすが!!」の一言です。
全Alteryxユーザーにとってとても参考になる事例だと思います。
いいとこ取りさせていただきましょう!(いいとこしかないですが・・・w)