注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
以下は、Contour に関するよくある質問です。 全般的な情報については、Contour ドキュメントを参照してください。
count_distinct() に失敗するFoundry では、すべてのユーザーに個人フォルダという専用のフォルダーがあります。このフォルダーでは、データを使って試作し、その結果をほかのユーザーと共有できます。フォルダー内で、最初の分析を作成できます。
データを見つけるには、主に2つの方法があります。
検索: Foundry には、ページ左側のワークスペースサイドバーに、プラットフォーム全体を対象とする検索ツールがあります。このツールは、スプレッドシート、Contour の分析、コードワークブックを含む、プラットフォーム内のすべてのリソースを検索します。データセットの名前がわかっている場合に、データを見つけるのに適した方法です。
データカタログ: Foundry のデータカタログには、ビジネスアナリストやデータサイエンティストがすぐに利用できる、クレンジング済みで厳選されたデータセットが含まれています。プラットフォーム内にどのようなデータがすでに存在するのかを知りたい場合、データカタログは適した出発点となり、ホームページから直接アクセスできます。ワークスペースサイドバーでホームを選択すると、ホームページに戻れます。
同僚とリソースを共有するには、作業中のプロジェクトへのアクセス権がその同僚に必要です。共有を選択して共有 URL を送信するか、リソースに同僚を直接追加すると、自動的に通知が送信されます。同僚にアクセスが拒否されましたというエラーが表示される場合、その同僚はアクセス権をリクエストする必要があります。プロジェクトへのアクセスが承認されると、メールで共有した分析を同僚が閲覧できるようになります。
Foundry プラットフォーム内のデータは生データとして利用可能なことが多いため、分析の作成を始める前に、データを絞り込む方法を理解しておくことが重要です。データを絞り込むことで、無関係なデータに気を取られず、分析に重要な要素に集中できます。
carrier_code = DL)を使って新しい分析を作成した場合、ほかのユーザーは、自分のユースケースに合わせてフィルターを変更する(たとえば carrier_code = UA)だけで、その分析を簡単に再現できます。また、フィルターを完全に外すと、全体を対象に分析できます。大規模なデータセットを分析しやすくするため、分析操作はデフォルトで列全体に適用されます。より少数の選択した行を対象に分析を実行する場合(Excel で特定のセル範囲を選択する場合と同様)は、操作を適用する前に、必要な行にデータを絞り込んでください。
その他の絞り込みオプションについては、データの絞り込みのドキュメントを参照してください。
分析の表示を変更するためのオプションは4つあります。次の操作を実行できます。
列を昇順または降順で並べ替え
列の順序を並べ替え
列を削除
列を追加:Foundry における一般的な Excel 分析の対応機能の VLOOKUP セクションを参照してください。
自動化された Notepad ドキュメントを作成:Contour の分析出力を自動化された Notepad に追加し、エグゼクティブサマリーでデータを提示できます。このレポートは Foundry で更新されたデータに基づいて変更されるため、同じレポートを再作成する必要がなくなります。
Contour で新しい計算を実行するには、式ボードで列を追加を選択する必要があります。ただし、Foundry では、セル単位ではなく列単位で操作を実行します。数式で A1 * B1 を計算してセル C1 に結果を返す代わりに、Foundry は column1 * column2 を計算し(column1 と column2 の対応する各行の値をすべて乗算し)、column3 に結果を返します。
以下に、Microsoft Excel でよく使う関数と、それに相当する Contour の式を示します。これらの計算は、計算を適用するにはどうすればよいですか?で説明した方法と同じように適用できます。
Excel: IF(logical_test, value_if_true, [value_if_false])
CASE
WHEN logical_test THEN value_if_true
ELSE value_if_false
END
JFK の場合は yes、それ以外の場合は no を返す列を作成するには、次のような式を使用します。
CASE
WHEN "origin" = 'JFK' THEN 'yes'
ELSE 'no'
END
Excel: CONCAT(cell1, [cell2],…)
CONCAT("col1", ["col2"],...)timestamp 列と order_ID_number 列を連結して、注文ごとに一意のキーを持つ列を作成するには、次のような式を使用します。
CONCAT("timestamp","order_ID_number")Excel: VALUE(text)
CAST("col1" AS DOUBLE)DOUBLE データ型を置き換えると、列のデータ型を STRING、INTEGER、BOOLEAN、DATE、TIMESTAMP、または LONG に変換できます。cost が文字列として分類されている場合は、次のような式を使用します。
CAST("cost" AS DOUBLE)Excel: LEFT(text, [num_chars])
SUBSTRING("col1", num2, num3)num2 は開始インデックス、num3 は部分文字列の長さです。[ALB] Albany International + Albany, NY、[AZA] Phoenix - Mesa Gateway + Phoenix, AZ、[CLT] Charlotte Douglas International + Charlotte, NC などの値を持つ airport_display_name 列から、角括弧内の文字を抽出するには、次のような式を使用します。
SUBSTRING("airport_display_name", 2, 3) は、ALB、AZA、CLT を含む列を返します。詳細については、式ボードとサポートされている式の構文のドキュメントを参照してください。
flights データセットで作業していて、aircraft データセットの manufacturer 列と number_of_seats 列を追加したいとします。FLIGHTS データセットの例
| flight_id | date | origin | tail_num |
|---|---|---|---|
| 999 | 2018-04-01 | LAS | N227FR |
| --- | --- | --- | --- |
| 997 | 2018-07-27 | MIA | N303FR |
| … |
AIRCRAFT データセットの例
| tail_number | manufacturer | number_of_seats |
|---|---|---|
| N303FR | Airbus | 186 |
| --- | --- | --- |
| N227FR | Airbus | 180 |
| … |
結合ボードを使用すると、aircraft データセットの manufacturer 列と number_of_seats 列を追加して、flights データセットを拡充できます。両方のデータセットに機体番号を参照する列があるため、この列を結合に使用できます。データセットに結合キーではない同名の列がある場合、Contour は列名に接頭辞を追加するためのプロンプトを表示します。次に、以下の項目を設定します。
拡充したデータセットは次のようになります。
| flight_id | date | origin | tail_num | manufacturer | number_of_seats |
|---|---|---|---|---|---|
| 999 | 2018-04-01 | LAS | N227FR | Airbus | 186 |
| --- | --- | --- | --- | --- | --- |
| 997 | 2018-07-27 | MIA | N303FR | Airbus | 180 |
ピボットテーブルボードを使用すると、複数のディメンションにわたって、データの複数の集計値をすばやく計算できます。
ピボットしたデータ全体を操作するには、ボードの以下で集計されたデータに切り替えるオプションを使用します。これにより、ピボットテーブルボードより下にあるすべてのボードで、Contour 分析の対象が、計算済みのピボットデータ全体に切り替わります。
Foundry では、数式ボードの集約オプションでこれを行えます。ほかのスプレッドシートソフトウェアでは範囲単位の操作を選択できますが、Foundry では列単位で操作するため、対象の行だけを含むように列を適切に絞り込む必要があります。


以下に、Excel でよく使う集計関数と、それに相当する Contour の式を示します。これらの計算は、一連のデータ全体に関数を適用するにはどうすればよいですか?の質問で示した方法と同じように適用できます。
carrier_code)の total_distance_flown を求めます。

- 結果:
COUNT(): 件数関数で集計すると、指定した列によるグループ化ごとに、集計対象列のエントリー数が数えられます。
例:flight_id 全体の件数を集計して、carrier_code ごとのフライト数を求めます。
関数:

結果:

AVG(): 平均関数で集計すると、たとえば、各 carrier_code の air_time の平均が計算されます。
MAX(): 最大値関数で集計すると、たとえば、各 carrier_code の air_time の最大値が求められます。
MIN(): 最小値関数で集計すると、たとえば、各 carrier_code の air_time の最小値が求められます。
別のボードを追加して、結果のデータセットを確認できます。
テーブルボード: 分析の後にテーブルボードを挿入すると、新しく追加した列が正しいか、または前のボードのロジックによって意図した結果になったかをすばやく確認できます。
ヒストグラムボード: 分析の後にヒストグラムボードを挿入すると、さまざまなデータカテゴリーの概要がすばやく表示され、データの全体像を把握したり、絞り込んだカテゴリーが正しいかを確認したりできます。
Contour 分析からデータセットを保存するプロセスは、コードリポジトリまたは Code Workbook からデータセットを作成するプロセスとほぼ同じです。ロジックは一連の Spark 変換に変換され、クラスター全体で実行され、分散ファイルシステムに格納されるデータセットに保存されます。分析を新しいデータセットとして保存する場合、行数の制限はありません。ただし、データの規模が大きくなるほど、基盤となる計算のコストが増えるため、保存にかかる時間も長くなります。一方、Contour からデータをエクスポートする場合には行数の制限があります。これは、パスをデータセットとして保存する操作とは異なります。
はい、正しいです。Contour からのエクスポートには100,000行の制限があります。それ以上の行をエクスポートする必要がある場合は、Contour の結果をデータセットとして保存し、そのデータセットのプレビューページにあるアクションドロップダウンからダウンロードできます。
Contour のエクスポートとデータセットのダウンロードの制限は、パートナーの要件に基づいて Foundry エンロールメントごとに異なる場合があります。
現時点では、Contour 分析パスを自動的に更新する方法はありません。手動で更新する必要があります。ただし、分析結果のデータセットにはスケジュールを設定できます。データセットを保存した後、データセットのプレビューを開き、アクションドロップダウンメニューからスケジュールの管理を選択できます。分析結果のデータセットは、設定したスケジュールに基づいてビルドされます。
はい、画面右上の元に戻すを選択すると、変更を元に戻せます。
分析にパスが多すぎる場合に、この現象が発生することがあります。不要なパスを削除してから、もう一度複製を試してください。
詳細については、一般的なパフォーマンスの問題のセクションを参照してください。
Contour からデータセットをビルドするときに、エラーメッセージが表示されます。
詳細については、ビルドとチェックのエラーに関するガイダンスを参照してください。
ピボットテーブルのプレビューには、テーブル内のすべてのデータが表示されるわけではありません。ピボットテーブルはデータセット全体に対して集計を計算し、ブラウザーのパフォーマンス低下を防ぐために、出力を最初の100列または10,000個の値に制限します。このような大きなピボットテーブルで完全な結果を確認するには、以下で集計されたデータに切り替えるを選択する必要があります。詳細については、ピボットテーブルのドキュメントを参照してください。
トラブルシューティングするには、次の手順を実行します。
列の重複により、ピボットテーブルの計算に失敗します。これは通常、大文字と小文字の違いを除けば同じ列名が存在するためです。
トラブルシューティングするには、次の手順を実行します。
Test と test)が含まれていないか確認します。Foundry データセットの列名では大文字と小文字が区別されないため、列をピボットすると、Test 列と test 列は重複と見なされます。Contour の動作が遅く、パフォーマンス低下の原因を特定したい場合です。
トラブルシューティングするには、次の手順を実行します。
まず、分析で使用する入力データセットが Parquet ファイルまたは Avro ファイルを使用しているか確認します。使用していない場合は、適切でクリーンなバージョンのデータセットを使用していることを確認してください。
取り込まれた生のデータセットで、CSV ファイルとして格納されたバージョンを使用していないか確認します。この形式ではパフォーマンスが低下します。これが、この問題の最も一般的な原因です。
入力データセットのパーティションを確認します。分析で使用するデータセットが適切にパーティション分割されていない場合、パフォーマンスが低下します。
入力データセットのファイルサイズを確認するには、データセット → 詳細 → ファイル → データセットファイルに移動します。
各ファイルは少なくとも128 MB である必要があります。小さすぎる場合や大きすぎる場合は、パーティション分割をやり直す必要があります。
パスが非常に長い場合は、中間データセットを実体化し、新たに実体化したデータセットから始まる新しいパスを作成してください。各ボードは、そのボードを作成するために必要なクエリパス全体(それまでのすべてのボードで変換ロジックを使用している場合は、そのロジックなど)を実行するため、これによりロジック実行の重複が減ります。
分析内のパスの数を減らすことを検討してください。パスの数が多いと、特にパス概要画面の使用時にブラウザーのパフォーマンスが低下する場合があります。
詳細については、Contour 分析のパフォーマンス最適化のドキュメントを参照してください。
count_distinct() に失敗するSpark の制限により、ウィンドウ関数内では count_distinct() 関数を利用できません。Spark の公式ドキュメント ↗を参照してください。
使用したいウィンドウのロジックによっては、一意の値の件数を集計するオプションがあるピボットテーブルボードで、同じ結果を得られる場合があります。「ウィンドウ」を行と列の組み合わせとして定義し、各交点について一意の値の件数を生成できます。