Python スクリプトの統合
コンセプト情報
ACLScript Python コマンドを使用すると、Analytics スクリプトと Python スクリプトをシームレスに統合できます。このコマンドを使用することで、2 つの環境間でデータをやり取りできます。つまり、Analytics の 1 つのデータ分析ワークフロー内で、特定のタスクに最適な環境を選んで使用することができます。
メモ
ACLScript Python コマンドを使用するには、コマンドを実行するコンピューターに互換性のあるバージョンの Python をインストールし、構成する必要があります。詳細については、Python の Analytics 連携用設定を参照してください。
機能の仕組み
Python コマンドは、Analytics テーブルをデータフレームとして外部の Python スクリプトに渡し、Python スクリプトが実行されるのを待ってから、Python スクリプトから返された出力を使用して Analytics プロジェクトに新しいテーブルを作成します。Python コマンドは、Analytics スクリプト内で必要な回数だけ使用できます。
Analytics インストールには次の 2 つの Python 関数が含まれ、Python スクリプトでそれらの関数を使用してデータの入出力を行います。
-
入力データ acl_py_util.from_an() は Analytics のデータを Python にインポートします。
-
出力データ acl_py_util.to_an() は Python のデータを Analytics にエクスポートします。
さまざまな目的での Python コマンドの使用
ACLScript Python コマンドには柔軟性があり、さまざまな目的で使用できます。
-
データの往復 データを Analytics から Python にインポートし、Python で分析を実行し、分析結果を Analytics に戻します。
-
データの一方向送信 データを Analytics から Python にインポートし、Python で分析またはファイル変換を実行し、結果を Analytics 以外の保存先に、またはファイル形式で保存します。
-
データの一方向送信 データを外部ソースから Python にインポートし、Python で分析またはファイルの準備を行い、結果を Analytics にエクスポートします。
-
データを転送しない Analytics から Python スクリプトをトリガーし、ワークフロー全体に関連するタスクを実行します。
Analytics と Python のスクリプトの整合
ACLScript Python コマンドと、データの入出力を行う 2 つの Python 関数は、比較的簡単に使用できます。ただし、ACLScript Python コマンドと、対応する Python スクリプトのスクリプト ロジックが整合していることを確認する必要があります。整合性がないと、統合プロセスが失敗する原因となります。以下の表は指針です。
| ACLScript Python コマンド | Python スクリプト |
|---|---|
|
|
|
|
|
|
|
|
ログ ファイルの使用したトラブルシューティング
Analytics によって、ACLScript Python コマンドに関連付けられた 2 つのログ ファイルが作成されます。ログは、Analytics と Python の統合に関するトラブルシューティングや、関連する Analytics および Python スクリプトのエラーのデバッグに役立ちます。
ログ ファイルは、Analytics プロジェクト フォルダーに格納されます。
-
aclpython.log – ACLScript Python コマンドが失敗したときの ACLScript エラー メッセージが記録されます。
-
acl_py_util.log – Python スクリプトによって出力される情報メッセージが記録されます。
acl_py_util.log は、Analytics のインストールに含まれる構成可能なログです。ログのセットアップと構成の方法について詳しくは、acl_py_util.log をセットアップするを参照してください。
Python スクリプトを実行する
ACLScript Python コマンドを使用して、Analytics から Python スクリプトを実行します。コマンドに必要な情報は、実行する Python スクリプトのファイル パスと名前だけです。
このコマンドを使用すると、Analytics のデータを Python スクリプトにエクスポートしたり、Python スクリプトのデータを Analytics に返したりできます。ただし、データの転送は必須ではありません。
-
Analytics のデータを Python スクリプトにエクスポートするには、対象のデータが含まれるテーブルを開きます。
-
Analytics メイン メニューから、[分析] > [Python]の順に選択します。
-
[Python]フィールドで、実行する Python スクリプトのファイル パスと名前を指定します。
例:C:\Python_data_analysis_scripts\testInOutput.py
[参照]をクリックし、コンピューター上の Python スクリプトに移動できます。
Python スクリプトへの相対パスを指定できます。また、スクリプトが Analytics プロジェクト フォルダー内にある場合は、スクリプトのファイル名だけを指定することも可能です。
-
Python にデータをエクスポートする場合、以下を実行します。
-
[フィールドの選択]をクリックし、Analytics によって Python スクリプトからアクセスできるようにされるデータフレームに、1 つ以上のフィールドを追加します。
ヒント
データフレームには、フィールドとして式も追加することができます。式を作成するには、[式]をクリックし、表示されるダイアログ ボックスで選択できる関数、フィールド、演算子を使用します。詳細については、式ビルダーの概要を参照してください。
-
省略可能。[データ エクスポート オプション]セクションでは、Analytics データを Python スクリプトに送信する方法を定義します。
詳細については、データ エクスポート オプションを参照してください。
-
省略可能。Python スクリプトに送信されるレコードをフィルタリングするには、[If]をクリックし、[式ビルダー]ダイアログ ボックスを使って、フィルターとして使用する条件式を作成します。
式ビルダーを使用した式の作成方法の詳細については、式ビルダーによる式の作成を参照してください。
-
-
Python のデータを返す場合、以下を実行します。
-
[宛先]テキスト ボックスで、返されるデータを格納するテーブルの名前を指定します。
[宛先]をクリックし、ファイル エクスプローラーを使ってソース データ ファイルを保存するフォルダーに移動します。
メモ
Analytics のテーブル名は、最長で 64 文字の英数字(拡張子 .FIL を含まない)に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。
-
処理の完了時に、テーブルを自動的に開くようにするには、[出力テーブルの使用]をオンにします。
-
-
省略可能。ダイアログ ボックスの[詳細]タブで、使用する範囲関連オプションを指定します。
詳細については、[詳細]タブを参照してください。
-
コマンドを実行するには、[OK]をクリックします。
エラー メッセージが表示され、Python コマンドまたは Python スクリプトの実行に失敗する場合、[オプション]ダイアログ ボックスで指定した[Python パス]値が正しいことを確認してください。詳細については、Analytics のオプションに仮想環境パスを追加するを参照してください。
[PYCOMMAND]ダイアログ ボックスのオプション
データ エクスポート オプション
| オプション | 説明 |
|---|---|
| フィールド名付きでエクスポートする | ソース Analytics テーブルのフィールド名を Python データフレームの列名として使用します。このオプションは、コマンドの KEEPTITLE オプションを設定します。また、このオプションは、Python スクリプト内で列名を使ってデータを取得したい場合に必要です。 |
| 列区切り | Python にデータを送信する際に、フィールド間の区切り文字として使用する文字。 |
| テキスト修飾子 |
Python にデータを送信する際にフィールド値を識別するテキスト修飾子として使用する文字。 |
[詳細]タブ
| オプション | 説明 |
|---|---|
| すべて | ビュー内のすべてのレコード(デフォルトの選択対象)を処理します。 |
| 先頭 | テーブル内の冒頭のレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。 |
| 次へ |
テーブル内の現在選択されているレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。 メモ "先頭" または "次" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。 ビューでクイック ソートが実行されている場合、"次" は "先頭" のように動作します。 |
| While |
WHILE ステートメントを使用すると、条件に基づいて主テーブル内のレコードの処理を制限できます。 指定した条件が true と評価される間のみ、ビュー内のレコードが処理されます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。詳細については、式ビルダーによる式の作成を参照してください。 |