OVHcloud API: 請求データ分析の設定
このガイドでは、OVHcloud請求APIの複数のエンドポイントを設定する手順を提供します
目的
このガイドでは、OVHcloud請求APIの複数のエンドポイントを設定する手順を提供します。請求データを取得し、アプリケーションに統合して正確で効率的な財務追跡を行う方法を学びます。
概要
OVHcloud APIは、複数のエンドポイント設定をサポートしており、相互に接続されたリソースからデータを取得して統合できます。このガイドでは、OVHcloud請求APIエンドポイントの設定と利用方法について包括的な手順を提供します。これらの手順に従うことで、請求情報をプログラム的に取得、処理、分析することができます。
必要条件
開始する前に、以下を確認してください:
- 請求アクセス権限のあるアクティブなOVHcloudアカウント
- API認証情報、具体的には:
- アプリケーションキー(App Key)
- アプリケーションシークレット(App Secret)
- コンシューマーキー
- OVHcloud API Developer Portalへのアクセス
- APIエンドポイント相互作用の基本的な理解
請求エンドポイント設定の手順
1. API接続の初期化
OVHcloud API Connectorドキュメントに詳述されている認証設定プロセスに従って、OVHcloud API接続を設定します。これは、コネクタのユーザーインターフェースを通じてアプリケーションキー、アプリケーションシークレット、およびコンシューマーキーを取得して安全に入力することを含みます。これらの認証情報の取得と設定についての包括的な手順については、コネクタドキュメントのAPI接続詳細セクションを参照してください。
2. 請求エンドポイントの定義
2.1. アカウント請求IDの取得
- エンドポイント:
/me/bill - 目的: アカウントのすべての請求IDのリストを取得
手順:
- コネクタで「新しいエンドポイントを追加」を選択
- エンドポイントパスとして
/me/billを入力 - クエリパラメータを設定(例:年でフィルタリング) - この例では、キー:
date.fromと値:2023を使用し、2023年のレコードを取得します。 - エンドポイントに一意の名前
bills_ids_from_2023があることを確認 - 「確認」と「保存」をクリック
接続されたエンドポイントが正しいかどうかを確認する追加の手順を含めることができます。この手順は必須ではありませんが、最初の場合は、探しているデータの概要を得るのに役立ちます。
エンドポイントデータの検証
- アナライザータブに移動
- 新しいエンドポイントのメタデータを抽出
- 請求レコードが正しく取得されていることを確認
2.2. アカウント請求詳細IDの取得
- エンドポイント:
/me/bill/{billId}/details - 目的: 各請求行の詳細IDのリストを取得
手順:
- 「エンドポイントを追加」をクリック
- エンドポイントパスとして
/me/bill/{billId}/detailsを入力 - 複数エンドポイント選択を設定
- 前の請求エンドポイントにリンク
- パスパラメータとして
{billId}を選択 - エンドポイントに一意の名前
bills_details_ids_from_2023があることを確認 - 設定を保存
ソース管理を簡素化するために、一意のエンドポイント名を使用します。これは、ステップ4. レイクハウスにデータをインポートする際に役立ちます。
注意: 現在、1つのパスパラメータのみが動的に選択できます。複数のパスパラメータを持つ複雑なエンドポイントの場合は、手動入力が必要になる場合があります。
設定タブをクリックしてメインモーダルに戻ると、パスパラメータとエンドポイントフィールドが編集不可になっていることに気づくでしょう。これは、これらの値が別のエンドポイントから派生しているためです。変更が必要な場合は、単に複数エンドポイントセクションに戻り、エンドポイント選択ドロップダウンから「複数エンドポイントなし」を選択します。
2.3. アカウント請求詳細の取得
- エンドポイント:
/me/bill/{billId}/details/{detailsID} - 目的: 各請求行の詳細を取得
手順:
- 「エンドポイントを追加」をクリック
- エンドポイントパスとして
/me/bill/{billId}/details/{detailsID}を入力 - 複数エンドポイント選択を設定
- 前の請求詳細IDエンドポイントにリンク
- パスパラメータとして
{billId}と{detailsID}を選択 - エンドポイントに一意の名前
bills_details_from_2023があることを確認 - 設定を保存
2.4. サービスIDの取得
- エンドポイント:
/services - 目的: アカウントのすべてのサービスのIDを取得
手順:
- 「エンドポイントを追加」をクリック
- エンドポイントパスとして
/servicesを入力 - エンドポイントに一意の名前
services_idsがあることを確認 - 設定を保存
2.5. サービス情報の取得
- エンドポイント:
/services/{serviceId} - 目的: パイプラインのデータを豊かにするためにサービスについての情報を取得
手順:
- 「エンドポイントを追加」をクリック
- エンドポイントパスとして
/services/{serviceId}を入力 - 複数エンドポイント選択を設定
- 前のサービスIDエンドポイントにリンク
- パスパラメータとして
{serviceId}を選択 - エンドポイントに一意の名前
servicesがあることを確認 - 設定を保存
エンドポイントの設定はこれで完了です。以下のように表示されるはずです:
3. メタデータの抽出
エンドポイントが設定されたので、Connectors内のアナライザーツールに移動します。そこで、最近設定したエンドポイントを選択してください。システムがこれらのエンドポイントに関連する処理ジョブを開始し、完了するのに時間がかかる場合があります。
このプロセスの所要時間は、タスクの複雑さと処理されるデータ量によって異なります。
3.1. データの書式変更
ソースから抽出したデータは、ブループリントを通じてバケット化するか、または私たちが望む正確な形式に合わせて変更できます。これは、2つのエンドポイントについて行う予定です。
bills_details_from_2023services
3.1.1. 請求明細の書式変更
APIからのフィールドperiodstartは、YYYY-MM-DD形式の値です。DDは、サービスを購入した日によって月内の任意の日となります。この日を各月の1日に設定するためにブループリントを使用します。
データ分析の右上にあるNew Ruleをクリックし、Date formatを選択してください。
ブループリントの設定画面に移動しました。以下のように入力してください。
- 属性:
periodstart - 現在の日付形式:
%Y-%m-%d - 置き換え:
%Y-%m-01 - 条件:
Is not null
確認をクリックすると、periodstartに1つのブループリントがあることがわかります。
3.1.2. サービスの書式変更
servicesエンドポイントの多くの日付時刻フィールドには、タイムゾーン情報が含まれています。このタイムゾーン情報を日付時刻から削除するために、Date Formatブループリントですべての日付を書式変更します。これは、以前に見た通りです。
servicesエンドポイントに移動し、New ruleをクリックし、Date formatを選択してください。
ブループリントの設定画面に移動しました。以下のように入力してください。
- 属性:
billing_next_billingdate - 現在の日付形式:
%Y-%m-%dT%H:%M:%S%z - 置き換え:
%Y-%m-%dT%H:%M:%S - 条件:
All
次の属性についても同じ操作を繰り返すことができます。
billing_expirationdatebilling_lifecycle_current_terminationdatebilling_lifecycle_current_creationdatebilling_renew_current_nextdate
4. データをレイクハウスにインポート
データソースが設定されたので、テーブルを構築することができます。Lakehouse ManagerとTablesセクションに移動し、+とCreate from a Connectors sourceをクリックしてください。
最初のテーブルは、bill_details_from_2023データソースを使用してポップレートされます。raw_bills_detailsの次をクリックしてテーブルをリネームし、その後作成をクリックしてください。
専用のテーブルにサービスをインポートすることもできます。
5. サービスにタグを追加
費用を分類するために、タグでサービスを分類したいと思います。タグは、技術環境(例:プロダクション、開発)や会社の部門、またはお客様を表すことができます。
最初に分類するサービスのリストを抽出するには、Lakehouse Manager内のExplorerセクションに移動してください。
データで、domainを選択し、selectをクリックし、select_distinctに置き換え、その後RUNをクリックしてください。
次のような結果が得られるはずです。
DownloadとAs a CSVをクリックすると、タグ付けするすべてのリソースが含まれた最初のCSVファイルが得られます。開き、列select_distinct_domainをdomainにリネームし、その後2番目の列tagを追加し、タグ付けしたい各ドメインについて、希望する値を追加してください。次のようなCSVファイルが得られるはずです。
このCSVファイルをConnectorsに新しいデータソースとして追加し、レイクハウスからテーブルを作成する時が来ました。Connectors -> sources -> New Source -> File Uploadに移動できます。新しいソースにDomains Taggedと名前を付け、CSVファイルを追加し、createボタンをクリックしてください。
データが正しく評価されているかどうかを確認するためにアナライザーに戻り、タグにブループリントを追加し、空の値をunknownに置き換えることができます。new rule、Replace Byをクリックしてください。フォームを以下のように入力してください。
- 属性:
tag - 置き換え:
unknown - 条件:
Equal - 等しい: 空白のままにしてください
ブループリントを確認してください。
Lakehouse ManagerとTablesセクションに戻り、この新しいソースからテーブルを作成できます。テーブルにdomains_tagsと名前を付けることを忘れないでください。
6. 集約テーブルの作成
現在、サービス、請求書、タグに関する多くの情報を持っています。これらの情報をすべて結びつけるために、集約テーブルを構築します。
Lakehouse ManagerおよびTablesセクション内で、+およびCreate a new empty tableをクリックします。名前を付けます: enriched_bills_details。
これで、Lakehouseに次のテーブルを持つことになります:
servicesdomains_tagsraw_bills_detailsenriched_bills_details
ソースから作成したテーブルからいくつかのフィールドをドラッグし、enriched_bills_detailsにドロップします。ドラッグ&ドロップするフィールドは次の通りです:
raws_bills_detailsから:domainperiodstarttotalprice_value
domains_tagsから:tag
servicesから:resource_displaynameresource_product_nameresource_product_description
enriched_bills_detailsテーブルは、次のようになります:
これで、Buildをクリックして、この新しいテーブルを構築できます。
この新しいテーブルの構造ができたので、前の3つのテーブルからデータを抽出し、この新しいテーブルにロードするジョブを作成します。Data Processing EngineおよびActionsセクションに移動する必要があります。New Actionをクリックし、Aggregateを選択します。
次に、異なるテーブルからのフィールドをenriched_bills_detailsにマッピングします。そのためには、まずソースと宛先を選択する必要があります:
- ソース:
raws_bills_detailsservicesdomains_tags
- 宛先:
enriched_bills_details
ソースについては、3つのテーブルのデータがSQL JOIN構文を通じてどのようにリンクされているかを説明する必要があります。次に、次のジョインを追加します:
raws_bills_detailsとservicesの間:
raws_bills_detailsとdomains_tagsの間:
集約を完了するには、テーブルの属性をenriched_bills_detailsに選択してグループ化する方法を設定する必要があります。以下のスクリーンショットに示すように属性をマッピングします。
これで、集約を作成し、アクションを実行できます。
7. クエリの準備とダッシュボードの構築
現在、すべてのデータが活用できる状態になっているので、Analytics ManagerおよびQueriesに移動できます。
いくつかのクエリを作成しましょう。
前月比のコスト推移
クエリについては:
- データ:
totalprice_valuesum FROMenriched_bills_details - スケール:
periodstart - Order by:
periodstart desc
ビジュアライゼーションについては:
- メトリックとして
- カスタマイズ: すべてのトグルボタンを有効にします
タグ別のコスト分布
クエリについては:
- データ:
totalprice_valuesum FROMenriched_bills_details - スケール:
tag
ビジュアライゼーションについては:
- 円グラフとして
- カスタマイズ:
- カテゴリを表示
- 合計の%を表示
- 位置: 外側
- 凡例を非表示
製品別のコスト分布
クエリについては:
- データ:
totalprice_valuesum FROMenriched_bills_details - スケール:
resource_displayname
ビジュアライゼーションについては:
- 円グラフとして
- カスタマイズ:
- カテゴリを表示
- 合計の%を表示
- 位置: 外側
- 凡例を非表示
製品タイプ別のコスト分布
クエリについては:
- データ:
totalprice_valuesum FROMenriched_bills_details - スケール:
resource_productdescription
ビジュアライゼーションについては:
- 円グラフとして
- カスタマイズ:
- カテゴリを表示
- 合計の%を表示
- 位置: 外側
- 凡例を非表示
月別およびタグ別のコスト
クエリについては:
- データ:
totalprice_valuesum FROMenriched_bills_details - スケール:
periodstartresource_product_descriptiontag - フィルタリング:
periodstartNot null - Order by:
periodstartasc
ビジュアライゼーションについては:
- 棒グラフとして
- カスタマイズ:
- 積み上げ表示
- 凡例を非表示
- X軸: 期間開始でグループ化
ダッシュボードの作成
ダッシュボードセクションに移動し、新しいダッシュボードを作成し、すべてのチャートをこのダッシュボードに追加できます。+ボタンをクリックします。
ダッシュボードの上部には、データのナビゲーションを容易にするためにフィルタを追加できます。次のフィルタを追加することを検討してください:
periodstarttagresource_product_description
結論
これらの手順に従うことで、OVHcloud Billing APIエンドポイントを効果的に構成し、請求情報をプログラムで取得、処理、分析することができます。
さらに学ぶ
トレーニングや技術的なサポートが必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして見積もりを依頼し、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼してください。
質問をする、フィードバックを送信する、およびData Platformを構築しているチームと直接交流するには、専用のDiscordチャネルにアクセスしてください。
OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。
ユーザーコミュニティに参加してください。

