使用 Looker 数据洞察直观呈现您的费用


您可以结合使用将 Cloud Billing 数据导出到 BigQuery 的功能与 Looker 数据洞察,随时了解 Google Cloud 费用。

本页介绍如何使用 Cloud Billing 数据设置结算使用情况和费用数据分析信息中心。您可以使用信息中心回答有关 Google Cloud 支出的问题,例如我的 Compute Engine 资源支出是多少?

Looker 数据洞察中的可视化示例

您可以按照本教程中的说明设置信息中心,也可以观看以下视频:

目标

本教程将介绍如何完成下列任务:

  • 使用 Cloud Shell 设置您自己的结算使用情况和费用数据分析信息中心的副本。

  • 了解如何针对高级案例修改信息中心视图,例如,如果您有多个 Cloud Billing 帐号,或者 Cloud Billing 帐号使用非美元货币。

费用

在本文档中,您将使用 Google Cloud 的以下收费组件:

将 Cloud Billing 数据存储在 BigQuery 中的费用通常是免费的,或者只需些许费用。根据 BigQuery 数据集的大小,您可能需要支付查询数据进行分析的费用。

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

准备工作

  1. 设置将 Cloud Billing 数据导出到 BigQuery

    如需使用信息中心,您必须为标准和详细 Cloud Billing 使用情况数据启用 BigQuery 导出。

    启用数据导出后,数据集大约需要一天时间才能填充 Cloud Billing 数据。您可能会先看到一些网络出站流量,之后是一些虚拟机费用,然后是 Pub/Sub 使用情况,等等。获得数据集中的数据后,您可以针对该数据集运行查询。

  2. 如果您的组织已设置 BigQuery 导出功能,则您必须在托管数据集的项目中创建 BigQuery 视图的权限

    (可选)如果要为 BigQuery 视图创建新数据集,则必须具有创建 BigQuery 数据集的权限。

  3. 获取有关 Google Cloud 环境的以下信息:

    • 托管您的 Cloud Billing BigQuery 数据集的项目 ID。
    • 标准和详细费用数据导出的数据集名称。通常,费用数据导出位于同一个数据集中。

创建信息中心的副本

如需创建您自己的信息中心副本,请先克隆自动执行该过程的 GitHub 代码库。此步骤使用 Cloud Shell,它是 Google Cloud 的交互式 Shell 环境,您可以通过浏览器使用。

概括来讲,该代码库中的设置脚本会执行以下任务:

  • 创建一个新的 BigQuery 数据集,其中包含从标准和详细费用数据导出中提取数据的视图。
  • 复制信息中心模板并将副本连接到数据的 BigQuery 视图。
  • 为您提供 Looker 数据洞察的链接,该副本可保存到 Looker 数据洞察信息中心。

如需创建副本,请执行以下操作:

  1. 在 Cloud Shell 中打开 GitHub 代码库:

    在 Cloud Shell 中打开

  2. 导航到 billboard 目录:

    cd examples/billboard
    
  3. 运行以下命令以设置脚本的 Python 环境:

    pip install virtualenv
    virtualenv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. 运行用于创建信息中心的脚本。您可能需要授权 Cloud Shell 以代表您进行 API 调用:

    python billboard.py \
      -pr PROJECT_ID \
      -se STANDARD_BILLING_EXPORT_DATASET \
      -de DETAILED_BILLING_EXPORT_DATASET \
      -bb BILLBOARD_DATASET
    

    其中的变量如下所示:

    • PROJECT_ID:托管您的 Cloud Billing 数据集的项目 ID。
    • STANDARD_BILLING_EXPORT_DATASET:包含标准费用数据导出的 BigQuery 数据集。
    • DETAILED_BILLING_EXPORT_DATASET:包含详细使用费数据导出的 BigQuery 数据集。
    • BILLBOARD_DATASET:在其中创建信息中心的 BigQuery 视图的 BigQuery 数据集的名称,例如 example_dashboard_views。如果您还没有视图的数据集,脚本会使用此名称创建一个新数据集。

    脚本运行完毕后,您会获得一个指向您的 Looker 数据洞察的链接。

  5. 点击 Looker 数据洞察链接以打开信息中心。

  6. 在 Looker 数据洞察中,点击修改和共享以保存信息中心。当系统提示您向报告添加数据源时,点击添加到报告

现在,您可以从 Looker 数据洞察首页访问信息中心了。

(高级)修改多个 Cloud Billing 帐号的数据

如果您希望信息中心包含来自多个 Cloud Billing 帐号的数据,则可以修改 BigQuery 视图,以包含所有 Cloud Billing 帐号的结算数据导出。

准备工作

对于您要包含的每个 Cloud Billing 帐号,请按照教程前提条件中的步骤操作。

更新 BigQuery 视图以包含其他 Cloud Billing 导出

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 选择包含您为信息中心创建的数据集的项目。

  3. 浏览器面板中,展开您的项目,然后展开数据集。

  4. 点击布告栏视图以查看其详细信息。此视图查询您的标准费用和使用情况数据导出。

  5. 点击详细信息标签页,然后点击修改查询。该视图的查询类似于以下内容:

    SELECT *,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    

    其中,PROJECT_ID 是包含 Cloud Billing 的 BigQuery 标准费用数据导出的项目,BILLING_ACCOUNT_EXPORT 是包含标准费用数据的 BigQuery 表的名称。

  6. 复制现有查询,然后在 FROM 子句中,将项目 ID 和 BigQuery 表替换为其他 Cloud Billing 帐号的信息。

  7. 在两个查询之间添加 UNION ALL 运算符以组合数据。您的最终查询类似于以下示例,其中组合了 BILLING_ACCOUNT_1BILLING_ACCOUNT_2 的数据导出(位于 PROJECT_ID_1PROJECT_ID_2 中)。

    SELECT *, --query for BILLING_ACCOUNT_1
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    UNION ALL
    SELECT *, --query for BILLING_ACCOUNT_2
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    
  8. billboard_detail 视图重复上述步骤,以查询详细费用和使用情况数据。

  9. 如果您的某个帐号采用非美元货币,请重复上述步骤,并使用 currency_conversion_rate 列转换为美元,如以下示例所示:

    select *,
      (COALESCE((SELECT SUM(x.amount)
      FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount,
        (COALESCE((SELECT SUM(x.amount)
        FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost,
        'USD' as net_cost_currency,
        EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s
    WHERE _PARTITIONTIME >"2021-01-01"
    

清理

如果您不想继续使用信息中心,请克隆 GitHub 代码库并使用 -clean 选项运行信息中心脚本。该脚本会删除 BigQuery 视图,但您的 BigQuery 导出数据集保持不变。

  1. 在 Cloud Shell 中打开 GitHub 代码库:

    在 Cloud Shell 中打开

  2. 导航到 billboard 目录:

    cd examples/billboard
    
  3. 运行以下命令以设置脚本的 Python 环境:

    pip install virtualenv
    virtualenv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. 运行清理命令:

    python billboard.py \
      -pr PROJECT_ID \
      -se STANDARD_BILLING_EXPORT_DATASET \
      -de DETAILED_BILLING_EXPORT_DATASET
      -bb BILLBOARD_DATASET \
      -clean yes
    

    其中的变量如下所示:

    • PROJECT_ID:托管您的 Cloud Billing 数据集的项目 ID。
    • STANDARD_BILLING_EXPORT_DATASET:包含标准使用费导出数据的 BigQuery 数据集。
    • DETAILED_BILLING_EXPORT_DATASET:包含详细使用费数据导出的 BigQuery 数据集。
    • BILLBOARD_DATASET:您为信息中心创建 BigQuery 视图的 BigQuery 数据集。
  5. 如需删除 Looker 数据洞察信息中心,请打开 Looker 数据洞察,找到信息中心,然后从 菜单中点击移除

后续步骤