googleapis--mcp-toolbox
95 行
4.1 KiB
Markdown
95 行
4.1 KiB
Markdown
---
|
|
title: "bigquery-analyze-contribution"
|
|
type: docs
|
|
weight: 1
|
|
description: >
|
|
A "bigquery-analyze-contribution" tool performs contribution analysis in BigQuery.
|
|
---
|
|
|
|
## About
|
|
|
|
A `bigquery-analyze-contribution` tool performs contribution analysis in
|
|
BigQuery by creating a temporary `CONTRIBUTION_ANALYSIS` model and then querying
|
|
it with `ML.GET_INSIGHTS` to find top contributors for a given metric.
|
|
|
|
`bigquery-analyze-contribution` takes the following parameters:
|
|
|
|
- **input_data** (string, required): The data that contain the test and control
|
|
data to analyze. This can be a fully qualified BigQuery table ID (e.g.,
|
|
`my-project.my_dataset.my_table`) or a SQL query that returns the data.
|
|
- **contribution_metric** (string, required): The name of the column that
|
|
contains the metric to analyze. This can be SUM(metric_column_name),
|
|
SUM(numerator_metric_column_name)/SUM(denominator_metric_column_name) or
|
|
SUM(metric_sum_column_name)/COUNT(DISTINCT categorical_column_name) depending
|
|
the type of metric to analyze.
|
|
- **is_test_col** (string, required): The name of the column that identifies
|
|
whether a row is in the test or control group. The column must contain boolean
|
|
values.
|
|
- **dimension_id_cols** (array of strings, optional): An array of column names
|
|
that uniquely identify each dimension.
|
|
- **top_k_insights_by_apriori_support** (integer, optional): The number of top
|
|
insights to return, ranked by apriori support. Default to '30'.
|
|
- **pruning_method** (string, optional): The method to use for pruning redundant
|
|
insights. Can be `'NO_PRUNING'` or `'PRUNE_REDUNDANT_INSIGHTS'`. Defaults to
|
|
`'PRUNE_REDUNDANT_INSIGHTS'`.
|
|
|
|
The behavior of this tool is influenced by the `writeMode` setting on its
|
|
`bigquery` source:
|
|
|
|
- **`allowed` (default) and `blocked`:** These modes do not impose any special
|
|
restrictions on the `bigquery-analyze-contribution` tool.
|
|
- **`protected`:** This mode enables session-based execution. The tool will
|
|
operate within the same BigQuery session as other tools using the same source.
|
|
This allows the `input_data` parameter to be a query that references temporary
|
|
resources (e.g., `TEMP` tables) created within that session.
|
|
|
|
The tool's behavior is also influenced by the `allowedDatasets` restriction on
|
|
the `bigquery` source:
|
|
|
|
- **Without `allowedDatasets` restriction:** The tool can use any table or query
|
|
for the `input_data` parameter.
|
|
- **With `allowedDatasets` restriction:** The tool verifies that the
|
|
`input_data` parameter only accesses tables within the allowed datasets.
|
|
- If `input_data` is a table ID, the tool checks if the table's dataset is in
|
|
the allowed list.
|
|
- If `input_data` is a query, the tool performs a dry run to analyze the query
|
|
and rejects it if it accesses any table outside the allowed list.
|
|
|
|
|
|
## Compatible Sources
|
|
|
|
{{< compatible-sources >}}
|
|
|
|
## Example
|
|
|
|
```yaml
|
|
kind: tool
|
|
name: contribution_analyzer
|
|
type: bigquery-analyze-contribution
|
|
source: my-bigquery-source
|
|
description: Use this tool to run contribution analysis on a dataset in BigQuery.
|
|
```
|
|
|
|
## Reference
|
|
|
|
| **field** | **type** | **required** | **description** |
|
|
|-------------|:--------:|:------------:|----------------------------------------------------|
|
|
| type | string | true | Must be "bigquery-analyze-contribution". |
|
|
| source | string | true | Name of the source the tool should execute on. |
|
|
| description | string | true | Description of the tool that is passed to the LLM. |
|
|
|
|
## Advanced Usage
|
|
|
|
### Sample Prompt
|
|
|
|
You can prepare a sample table following
|
|
https://cloud.google.com/bigquery/docs/get-contribution-analysis-insights.
|
|
And use the following sample prompts to call this tool:
|
|
|
|
- What drives the changes in sales in the table
|
|
`bqml_tutorial.iowa_liquor_sales_sum_data`? Use the project id myproject.
|
|
- Analyze the contribution for the `total_sales` metric in the table
|
|
`bqml_tutorial.iowa_liquor_sales_sum_data`. The test group is identified by
|
|
the `is_test` column. The dimensions are `store_name`, `city`, `vendor_name`,
|
|
`category_name` and `item_description`.
|