Skills de datos y analítica
Skills de datos y analítica
Este capítulo cubre la franja del catálogo google/skills que toca datos: almacenar, consultar, gobernar y reportar. Es una franja grande y muy dispareja: hay skills de una sola página y skills con dieciséis archivos de referencia.
Como en los capítulos anteriores, nada de lo que aparece aquí está inventado. Cada nombre de skill corresponde a un directorio real del repositorio, y cada descripción sale del SKILL.md correspondiente. Antes de escribir este capítulo, la lista se descubrió con comandos, no con memoria.
Cómo se descubre esta familia
El catálogo no tiene una carpeta skills/data/. Solo existen tres áreas de primer nivel: skills/cloud/, skills/ads/ y skills/analytics/. Los skills de datos viven mezclados dentro de skills/cloud/, así que hay que buscarlos.
La primera pasada es por nombre de directorio:
cd skills/cloud
ls | grep -Ei 'bigquery|data|spark|alloy|storage|sql|bigtable|spanner|airflow'
La segunda pasada, más fiable, es por el campo metadata.category del frontmatter, que es la taxonomía interna que Google usa y que no siempre coincide con los encabezados del README.md:
grep -rl 'category: BigDataAndAnalytics' skills/
grep -rl 'category: Databases' skills/
grep -rl 'category: Storage' skills/
grep -rl 'category: GoogleAnalytics' skills/
Los conteos reales por categoría son: BigDataAndAnalytics con 5 skills, Databases con 4, Storage con 3 y GoogleAnalytics con 2. A esos hay que sumar bigquery-ai-ml, que está catalogado como AiAndMachineLearning pese a ser puro BigQuery, y las soluciones multi-producto centradas en datos, catalogadas como MultiProductSolutions.
Ese desfase entre el nombre del directorio, la categoría del frontmatter y la sección del README.md es el motivo por el que el capítulo 3 insiste en descubrir con grep y no confiar en el índice. Aquí se ve el caso concreto: el README.md agrupa nueve skills bajo el encabezado Databases and analytics, pero deja bigquery-ai-ml fuera, listado bajo AI y ML.
flowchart TD
A[Familia de datos] --> B[BigQuery]
A --> C[Gobierno y linaje]
A --> D[Bases de datos gestionadas]
A --> E[Almacenamiento]
A --> F[Orquestacion]
A --> G[Soluciones multi-producto]
A --> H[Google Analytics]
B --> B1[bigquery-basics]
B --> B2[bigquery-ai-ml]
B --> B3[bigquery-bigframes]
C --> C1[datalineage-summary]
C --> C2[datalineage-bigquery-asset-impact-analysis]
D --> D1[alloydb-basics]
D --> D2[cloud-sql-basics]
D --> D3[spanner-basics]
D --> D4[bigtable-basics]
E --> E1[google-cloud-storage-basics]
E --> E2[gke-storage]
E --> E3[gke-backup-dr]
F --> F1[managed-airflow-migrations]
G --> G1[agentic-analytics-spark-knowledge-catalog]
G --> G2[agentic-ai-borderless-data-lakehouse]
G --> G3[agentic-ai-data-science-workflow]
H --> H1[google-analytics-admin-api-basics]
H --> H2[google-analytics-data-api-basics]
BigQuery: tres skills, tres audiencias
Google no escribió un skill gigante de BigQuery. Escribió tres, con fronteras explícitas en la descripción de cada uno, y con enlaces cruzados en la sección ## Related Skills. Es el ejemplo más claro del catálogo de cómo particionar un producto grande.
bigquery-basics
Ruta: skills/cloud/bigquery-basics/. Categoría BigDataAndAnalytics.
Su description es corta y define el alcance sin ambigüedad:
Manages datasets, tables, and jobs in BigQuery. Use when you need to interact with BigQuery, run SQL queries, manage BigQuery resources (datasets, tables, views), or perform basic data ingestion and analysis.
El cuerpo abre con un arranque en cuatro pasos: habilitar la API, crear un dataset, crear una tabla desde un schema.json y correr una consulta. Es literalmente esto:
gcloud services enable bigquery.googleapis.com --quiet
bq mk --dataset --location=US my_dataset
bq mk --table my_dataset.mytable schema.json
El resto del SKILL.md es un directorio de referencias que se cargan bajo demanda. Son ocho archivos en references/: core-concepts.md, change-history.md, continuous-queries.md, cli-usage.md, client-library-usage.md, mcp-usage.md, iac-usage.md e iam-security.md.
Dos detalles que vale la pena rescatar de esas referencias.
El primero está en mcp-usage.md: BigQuery tiene un servidor MCP remoto con cinco herramientas — list_dataset_ids, get_dataset_info, list_table_ids, get_table_info y execute_sql — y execute_sql está restringida a sentencias SELECT. El archivo lo dice textualmente: los INSERT, UPDATE y DELETE y los procedimientos almacenados no están permitidos. Además, cada consulta lanzada por esa herramienta lleva una etiqueta goog-mcp-server: true para poder filtrarla después en la facturación.
El segundo está en continuous-queries.md: describe las consultas continuas de BigQuery, sentencias SQL que corren de forma ilimitada sobre datos entrantes, y que pueden escribir a una tabla con INSERT o exportar a Pub/Sub, Bigtable o Spanner con EXPORT DATA. Los casos de uso que lista son flujos dirigidos por eventos hacia sistemas agénticos, inferencia de IA en tiempo real sobre streams y ETL inverso hacia bases operacionales.
Ejemplo de uso realista con el agente:
Crea un dataset en us-central1, carga este CSV como tabla particionada por fecha
y muéstrame las 20 filas con mayor monto. Usa el servidor MCP si está conectado.
bigquery-ai-ml
Ruta: skills/cloud/bigquery-ai-ml/. Categoría AiAndMachineLearning.
Este es el skill de las funciones de IA generativa y ML dentro de SQL. Su SKILL.md es corto — 2.9 KB — porque es esencialmente un índice hacia dieciséis archivos de referencia, uno por función.
El cuerpo del skill lo resume así:
BigQuery integrates with Vertex AI to provide powerful machine learning and generative AI capabilities directly within SQL queries using built-in functions like
AI.FORECAST,AI.KEY_DRIVERS,AI.DETECT_ANOMALIES, andAI.GENERATE.
Las referencias reales en references/ son: ai_agg.md, ai_classify.md, ai_detect_anomalies.md, ai_evaluate.md, ai_forecast.md, ai_generate.md, ai_generate_embedding.md, ai_generate_table.md, ai_if.md, ai_key_drivers.md, ai_score.md, ai_search.md, ai_similarity.md, ml_contribution_analysis.md, remote_models.md y vector_search.md.
El nivel de detalle de cada referencia es alto. ai_forecast.md documenta que AI.FORECAST usa el modelo fundacional preentrenado TimesFM, que el horizon por defecto es 10 con rango válido de 1 a 10.000, que el confidence_level por defecto es 0.95 y que el context_window de TimesFM 2.0 va de 64 a 2048 puntos históricos.
SELECT
*
FROM
AI.FORECAST(
TABLE `project.dataset.ventas`,
data_col => 'monto',
timestamp_col => 'fecha',
id_cols => ['store_id'],
horizon => 30
)
vector_search.md documenta VECTOR_SEARCH como función con valor de tabla, con top_k por defecto 10 y distance_type por defecto 'EUCLIDEAN', admitiendo también 'COSINE' y 'DOT_PRODUCT'. La columna de salida base es un STRUCT con las columnas de la tabla base, y query solo aparece en la sintaxis de búsqueda por lotes.
La frontera con el skill anterior está escrita en la propia description: “Do not use for general BigQuery dataset, table, or job management requests”. Y al final del archivo hay un enlace explícito de vuelta a ../bigquery-basics.
bigquery-bigframes
Ruta: skills/cloud/bigquery-bigframes/. Categoría BigDataAndAnalytics.
Es el skill para quien trabaja BigQuery desde Python con la API estilo pandas. Su description marca la frontera al revés que los otros dos: “Don’t use for SQL-first workflows or the google-cloud-bigquery client library — use bigquery-basics”.
Lo interesante es que casi todo el contenido son reglas de estilo, no sintaxis. Algunas verificables textualmente:
-
Prefer partial ordering mode: activar el modo de ordenamiento parcial justo después de importar la librería, porque relaja las restricciones de secuencia de filas y acelera el procesamiento.
import bigframes.pandas as bpd bpd.options.bigquery.ordering_mode = 'partial' -
Use
peek()for data preview: usarpeek(n)en vez dehead(n), porque muestrea aleatoriamente y es mucho más rápido;head(n)falla en modopartiala menos que el DataFrame ya esté ordenado explícitamente. -
Avoid materializing data locally:
to_pandas()descarga todo a memoria del cliente y arriesga OOM. -
Accessors over UDFs/Lambdas: usar
df.col.str.upper()en vez dedf["name"].map(lambda x: x.upper()), porque las UDF remotas requieren recursos y tiempo de despliegue extra.
En la parte de machine learning, el skill instruye usar el paquete bigframes.bigquery.ml y no scikit-learn, y trata bigframes.ml como paquete heredado que solo debe usarse si el usuario lo pide explícitamente. Documenta particularidades reales de ese paquete heredado: predict() devuelve un DataFrame con predicciones y features, no una serie; no acepta random_state; no tiene GridSearchCV ni RandomizedSearchCV; y la clase PCA carece de transform(), hay que usar predict().
Solo tiene dos referencias: linear_regression.md y logistic_regression.md.
Gobierno y linaje: los dos skills de Data Lineage
Estos dos son los más agénticos de la familia. No enseñan comandos: describen un procedimiento de investigación apoyado en un servidor MCP.
Ambos dependen del Google Cloud Data Lineage (Knowledge Catalog) MCP Server y de su única herramienta, search_lineage, que hace una búsqueda en anchura hacia arriba o hacia abajo desde un activo identificado por su nombre completamente calificado.
La configuración de cliente que documentan es idéntica en los dos:
{
"mcpServers": {
"DataLineageServer": {
"serverUrl": "https://datalineage.googleapis.com/mcp",
"authProviderType": "google_credentials",
"headers": {
"x-goog-user-project": "<GCP_PROJECT_ID>"
}
}
}
}
El archivo mcp-usage.md de datalineage-summary incluye una jerarquía de preferencia de herramientas explícita: MCP primero, luego bq, luego gcloud; y advierte que gcloud no soporta búsquedas de enlaces de linaje en los tracks estándar ni beta.
datalineage-summary
Ruta: skills/cloud/datalineage-summary/.
Resume el grafo de linaje de un activo, hacia arriba y hacia abajo, y lo presenta como un recorrido de izquierda a derecha en lenguaje natural. El flujo obligatorio es hacer dos llamadas separadas a search_lineage, una con "direction": "UPSTREAM" y otra con "direction": "DOWNSTREAM".
Los valores por defecto que fija son maxDepth = 10, maxResults = 5000 y maxProcessPerLink = 10. Y hay una instrucción llamativa sobre regiones: el agente debe usar la herramienta read_url para traer dinámicamente la lista de ubicaciones soportadas desde la documentación de Knowledge Catalog, en lugar de asumirlas, para no perder linaje entre regiones.
Para linaje a nivel de columna, el truco documentado es el comodín en el array field:
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:project.dataset.table",
"field": ["*"]
}
]
}
}
El formato de salida está prescrito hasta el encabezado: los títulos deben ser exactamente **Upstream Lineage:** y **Downstream Lineage:**, y el reporte debe cerrar con metadatos de análisis — ubicaciones consultadas, ruta padre, límite de profundidad y límite de procesos por enlace. Hay incluso una regla de granularidad: si hay menos de cinco activos, hay que nombrarlos uno por uno; si hay cinco o más, se agregan por conteo.
datalineage-bigquery-asset-impact-analysis
Ruta: skills/cloud/datalineage-bigquery-asset-impact-analysis/.
Es el radio de impacto: qué se rompe si una tabla o vista de BigQuery se corrompe, queda obsoleta o se modifica. La description traza la frontera con el skill anterior de forma bidireccional, y datalineage-summary remite aquí para blast radius.
El flujo tiene cinco pasos: resolver el nombre completamente calificado con formato bigquery:{project_id}.{dataset_id}.{table_or_view_id}, descubrir la ubicación con bq show --format=json, pedir el grafo DOWNSTREAM con max_depth = 10 y max_process_per_link = 5, clasificar el impacto y formatear la salida.
La clasificación distingue impacto directo, a profundidad 1, de impacto indirecto, a profundidad mayor. Y marca como “Directly Stale / Identical Copy” cualquier enlace cuyo dependency_type sea EXACT_COPY.
La salida obligatoria incluye una tabla Markdown con cuatro columnas: activo downstream, proceso de transformación, profundidad y tipo de impacto. Además, el skill destaca la ruta crítica: activos cuyo nombre contenga prod, dashboard, reporting o master.
La sección ## Crucial Constraints & Guardrails merece leerse completa porque es un catálogo de anti-alucinación:
- Si la respuesta de linaje viene vacía, asumir que no hay dependencias en las ubicaciones consultadas y reportarlo, sin inventar.
- Prohibido obtener relaciones downstream por cualquier vía que no sea
DataLineageServer:search_lineage. - Si
bq showindica que la tabla no existe, detenerse y reportarlo, sin adivinar nombres alternativos. - No decirle al usuario que se creó un archivo Markdown con los detalles si no se ejecutaron realmente herramientas de escritura.
Ese último punto es el patrón de anatomía que vimos en el capítulo 4: el skill anticipa un modo de fallo concreto del modelo y lo prohíbe por escrito.
Bases de datos gestionadas
Cuatro skills con categoría Databases, todos con el sufijo -basics y estructura muy parecida: arranque rápido, directorio de referencias y una sección de directivas o principios.
| Skill | Ruta | Producto |
|---|---|---|
alloydb-basics | skills/cloud/alloydb-basics/ | AlloyDB for PostgreSQL |
cloud-sql-basics | skills/cloud/cloud-sql-basics/ | Cloud SQL para MySQL, PostgreSQL y SQL Server |
spanner-basics | skills/cloud/spanner-basics/ | Spanner |
bigtable-basics | skills/cloud/bigtable-basics/ | Bigtable |
alloydb-basics
Su arranque son tres comandos: habilitar alloydb.googleapis.com, crear un cluster y crear una instancia primaria. Pero el peso del archivo está en la sección ## Directives for Agents, una lista larga de reglas de seguridad que el agente debe cumplir sí o sí. Algunas textuales:
- Recomendar Private IP, especialmente PSC, por sobre Public IP.
- Rechazar diseños con
0.0.0.0/0en redes autorizadas. - Usar autenticación IAM de base de datos y el rol
alloydbiamuseren vez de contraseñas estáticas. - Usar
roles/alloydb.clientpara conexiones y advertir contra roles amplios comoroles/alloydb.admin. - Declarar explícitamente que “IAM database users cannot be created using standard SQL alone” y que deben registrarse primero por el plano de control.
- Mencionar que el autoescalado de read pools está en Preview.
El mcp-usage.md documenta un endpoint MCP regional con formato https://alloydb.REGION.rep.googleapis.com/mcp, que requiere el rol roles/mcp.toolUser.
spanner-basics
Encabezado con > [!CAUTION] y una instrucción crítica: obtener confirmación explícita del usuario antes de cualquier cambio DML o DDL fuera del emulador, o cualquier operación destructiva. El agente debe imprimir el comando y esperar aprobación.
Sus principios de diseño son concretos: advertir contra valores monótonamente crecientes o decrecientes como primera parte de la clave primaria, para evitar hotspots, y preferir tablas intercaladas para datos padre-hijo fuertemente relacionados.
bigtable-basics
Separa control plane y data plane de forma tajante: gcloud para instancias, clusters, perfiles de aplicación, backups e IAM; cbt para actualizar tablas, familias de columnas y leer o escribir datos. Recomienda Java o Go para producción por cobertura y rendimiento, y manda mencionar siempre Key Visualizer como herramienta primaria de diagnóstico de hotspotting, seguida de hot-tablets y estadísticas de tabla.
Es el único de los cuatro con un directorio assets/, que contiene un row_key_schema.yaml de 205 bytes.
cloud-sql-basics
El más orientado a generación de recursos. Su description es inusualmente larga y explicativa: describe qué es Cloud SQL y cómo se relaciona con las bases de datos de terceros que gestiona. Es el skill de datos con la referencia de IAM más grande de la familia: iam-security.md pesa 12.6 KB.
Almacenamiento
google-cloud-storage-basics
Ruta: skills/cloud/google-cloud-storage-basics/. Categoría Storage.
Es, con diferencia, el skill de datos más grande del catálogo: SKILL.md de 7.7 KB más diez referencias que suman unos 121 KB. Su frontmatter es también el más completo de la familia, con license: Apache-2.0, version: v1, publisher: google, support_tier: primary y una lista de tags.
Tiene una particularidad que no aparece en ningún otro skill de datos: una sección ## Attribution que obliga a etiquetar cada invocación para que el uso pueda atribuirse al skill. La forma exacta es inyectar la variable de entorno en línea en cada comando:
CLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-storage-basics)" \
gcloud storage buckets create gs://my-bucket --location=us-central1
Y el skill explica por qué no se usa gcloud config set: persistiría más allá de la tarea actual y etiquetaría mal usos no relacionados. Para llamadas HTTP directas exige el header User-Agent: gcs-skills/1.0 (skill:google-cloud-storage-basics) textual, porque el pipeline de recolección parsea esos tokens.
El arranque muestra cada operación por duplicado, CLI y API JSON. Y advierte algo práctico: los nombres de bucket viven en un espacio de nombres global compartido por todo Cloud Storage, no acotado al proyecto ni a la organización.
Las diez referencias cubren conceptos base, CLI y API, librerías cliente, MCP, Terraform, transferencia de datos, gestión de datos, Storage Intelligence, almacenamiento de alto rendimiento y GCSFuse. gcsfuse.md por sí solo pesa 21.1 KB, y data-management.md 20.8 KB.
La description cierra con fronteras claras: no usar para almacenamiento de bloques con Persistent Disk, ni para data warehousing con BigQuery, ni para bases de datos.
gke-storage y gke-backup-dr
Ruta: skills/cloud/gke-storage/ y skills/cloud/gke-backup-dr/. Ambos tienen category: Storage, pero pertenecen conceptualmente al bloque de GKE que se cubre en el capítulo 8.
gke-storage es un skill de un solo archivo, sin references/. Cubre PVC, PersistentVolume, Filestore y GCS FUSE sobre GKE, y lista sus herramientas MCP en el propio cuerpo: apply_k8s_manifest, get_k8s_resource, describe_k8s_resource y get_cluster. Su description excluye explícitamente administración de bases de datos y estrategias de replicación fuera del contexto de aprovisionamiento de volúmenes.
Orquestación: managed-airflow-migrations
Ruta: skills/cloud/managed-airflow-migrations/. Categoría BigDataAndAnalytics.
Es el único skill de la familia que no administra un producto sino que ejecuta una migración. Guía la adaptación de DAGs de Apache Airflow en Managed Service for Apache Airflow, el producto antes llamado Cloud Composer, hacia Airflow 2.11.1 o Airflow 3.
Está organizado por fases: descubrimiento y descarga, mapeo de versión objetivo y dependencias, y luego el trabajo de migración. Lo que lo hace útil es la tabla de progresión de dependencias por versión de Composer, con los cambios rompedores anotados uno por uno. Ejemplos verificables:
- Google Provider 11.0.0: se elimina
BigQueryExecuteQueryOperator. - Google Provider 17.0.0: se eliminan
BigQueryCreateEmptyTableOperatoryBigQueryCreateExternalTableOperator. - HTTP Provider 5.0.0:
SimpleHttpOperatorpasa a llamarseHttpOperator. - SSH Provider 5.0.0: se elimina
sshtunnel, hay tunneling nativo.
Para Airflow 3 enumera los cambios mayores: Task SDK desacoplado con imports que pasan de airflow a airflow.sdk, eliminación del acceso directo a la base de metadatos, renombre de Dataset a Asset, y eliminación de SubDAGs y SLAs.
Tiene tres referencias: airflow-3.md, environment-inspection.md y local-development-environment.md.
Las soluciones multi-producto de datos
Tres de los nueve skills con categoría MultiProductSolutions giran alrededor de datos. El mecanismo de estas soluciones — fases, discovery, output-template.md — está explicado en el capítulo 6; aquí interesa lo que aportan de específico sobre datos.
| Skill | Foco |
|---|---|
google-cloud-solution-agentic-analytics-spark-knowledge-catalog | Analítica agéntica sobre datos distribuidos, con Spark e Iceberg |
google-cloud-solution-agentic-ai-borderless-data-lakehouse | Lakehouse abierto y gobernado con integración de agentes |
google-cloud-solution-agentic-ai-data-science-workflow | Arquitectura de ciencia de datos con agentes |
Además existe google-cloud-solution-rag-enterprise-search-gke-sqldb, que combina GKE con AlloyDB para RAG, y que se trata en el capítulo de infraestructura.
El skill de Spark y Knowledge Catalog
Ruta: skills/cloud/google-cloud-solution-agentic-analytics-spark-knowledge-catalog/. Es el SKILL.md más largo de toda la familia de datos: 17.1 KB.
Su description describe el problema con precisión: datos fuera de Google Cloud, en Databricks, Snowflake, Salesforce, SAP u Oracle, accedidos por federación mediante Apache Iceberg, métodos de “zero-copy ETL” o push-down de consultas remotas.
La descomposición técnica que impone tiene cuatro capas obligatorias: capa de interacción de usuario en el IDE, grounding y datos confiables, curación de metadatos, y procesamiento y analítica de datos.
Su references/product-selection-guidance.md es la parte con más valor práctico, porque nombra productos concretos por componente:
- Metadatos y gobierno central: Knowledge Catalog integrado con Lakehouse for Apache Iceberg.
- Motor de procesamiento: Managed Service for Apache Spark con Lightning Engine, configurado con Iceberg REST Catalog. Alternativa: BigQuery.
- Almacenamiento de datos crudos: Cloud Storage. BigQuery se descarta como alternativa porque no está diseñado para blobs crudos como PDFs.
- Almacenamiento operacional: AlloyDB for PostgreSQL, por la aceleración vectorial de caché columnar para joins rápidos. Alternativa: Cloud SQL for PostgreSQL, más económico pero sin motor columnar.
- Conectividad externa: Cross-Cloud Interconnect entre nubes, Cloud Interconnect hacia on-premises.
Y hay una tabla de renombres que conviene tener presente porque afecta a todo el vocabulario de datos de Google. Aparece tanto aquí como en product_renaming.md del skill de lakehouse:
| Nombre heredado | Nombre actualizado |
|---|---|
| BigLake | Lakehouse for Apache Iceberg |
| Dataproc Serverless | Managed Service for Apache Spark |
| Dataplex | Knowledge Catalog |
| Vertex AI | Gemini Enterprise Agent Platform |
| cross-cloud, multicloud, multi-cloud | borderless |
La nota del propio skill es importante: las APIs, comandos gcloud, recursos de Terraform y roles IAM retienen los identificadores heredados. Por eso los skills de linaje siguen apuntando a URLs bajo dataplex/docs mientras el texto habla de Knowledge Catalog.
El skill de lakehouse borderless
Ruta: skills/cloud/google-cloud-solution-agentic-ai-borderless-data-lakehouse/.
Su references/product_mapping.md parte la solución en dos subsistemas: ingesta, que unifica bases fragmentadas en un perfil de datos consolidado, y serving, donde el usuario consulta un asistente de IA y un agente de análisis.
Para el subsistema de ingesta recomienda Lakehouse for Apache Iceberg como catálogo central, con Dataproc Metastore como alternativa para pipelines open-source heredados; Managed Service for Apache Spark con Lightning Engine como motor, con BigQuery y Dataflow como alternativas — y anota que Dataflow exige aprender el modelo de programación de Apache Beam y gestionar un bucket de Cloud Storage para logs de error.
Para seguridad recomienda Secret Manager para credenciales de catálogos REST federados, y Cloud KMS como alternativa parcial, con la observación de que KMS no está diseñado para guardar secretos en texto plano como tokens de API.
Para el subsistema de serving, la recomendación primaria es el BigQuery data agent con Antigravity CLI, con Gemini Enterprise Agent Platform y el Google Cloud Data Agent Kit como alternativas.
Los dos skills de Google Analytics
Estos son los únicos habitantes de skills/analytics/. Ambos tienen category: GoogleAnalytics y aparecen en el README.md bajo el encabezado genérico Others.
Comparten estructura casi idéntica: habilitar la API, autenticar con ADC, elegir librería cliente y un quick start en Python. Y comparten el mismo comando de autenticación:
gcloud auth application-default login \
--scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
Los dos tienen siete archivos en references/, uno por lenguaje: python.md, java.md, php.md, nodejs.md, go.md, dotnet.md y ruby.md. Y los dos incluyen una directiva marcada como obligatoria: cuando el usuario elija un lenguaje, el agente debe leer la guía de configuración correspondiente en references/.
google-analytics-data-api-basics
Ruta: skills/analytics/google-analytics-data-api-basics/.
Es el skill de reportería. Habilita analyticsdata.googleapis.com y trabaja contra la Data API v1beta, versión que el skill instruye preferir siempre “for stability and access to current Google Analytics reporting capabilities”.
El quick start es un RunReportRequest completo:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, RunReportRequest
client = BetaAnalyticsDataClient()
request = RunReportRequest(
property=f"properties/{property_id}",
dimensions=[Dimension(name="city"), Dimension(name="date")],
metrics=[Metric(name="activeUsers"), Metric(name="sessions")],
date_ranges=[DateRange(start_date="2026-05-01", end_date="today")],
)
response = client.run_report(request)
El skill documenta las dimensiones más usadas — city, country, date, deviceCategory, eventName, pageTitle — y las métricas más usadas — activeUsers, eventCount, sessions, screenPageViews, totalRevenue. Y advierte sobre la compatibilidad: algunas dimensiones y métricas no pueden consultarse juntas, y el síntoma es un error INVALID_ARGUMENT.
Los paquetes por lenguaje que documenta son reales y específicos: google-analytics-data en Python, com.google.cloud:google-cloud-analytics-data en Java, @google-analytics/data en Node.js, cloud.google.com/go/analytics/data/apiv1beta en Go, Google.Analytics.Data.V1Beta en .NET, google/analytics-data en PHP y la gema google-analytics-data-v1beta en Ruby.
google-analytics-admin-api-basics
Ruta: skills/analytics/google-analytics-admin-api-basics/.
Es el skill de configuración. Habilita analyticsadmin.googleapis.com y trabaja contra la Admin API. Añade una nota que el otro no tiene: los métodos que cambian la configuración de cuenta o propiedad requieren el scope https://www.googleapis.com/auth/analytics.edit, no basta con analytics.readonly.
Su sección más útil es la separación entre lo que está en v1beta y lo que solo existe en v1alpha. En v1beta documenta: reportes de acceso a datos, resúmenes de cuenta, gestión y aprovisionamiento de cuentas, historial de cambios, propiedades, retención de datos, eventos de conversión, dimensiones y métricas personalizadas, streams de datos con secretos de Measurement Protocol, enlaces a Firebase, enlaces a Google Ads y eventos clave.
Y en v1alpha únicamente: access bindings de cuenta y propiedad, propiedades rollup, subpropiedades, reconocimiento de recolección de datos de usuario, cambios de atribución y Google signals, enlaces de AdSense, enlaces de BigQuery, audiencias, grupos de canales, métricas calculadas, enlaces de DisplayVideo360Advertiser, conjuntos de datos expandidos, anotaciones de datos de reportería, enlaces de SearchAds360, reglas de creación de eventos en un stream, esquema de valores de conversión de SKAdNetwork para iOS, y solicitudes de eliminación de datos de usuario.
Ese detalle de los enlaces de BigQuery solo en v1alpha es exactamente el tipo de dato que un agente no adivina y que justifica la existencia del skill.
Los paquetes por lenguaje también difieren del skill de datos: google-analytics-admin en Python, com.google.cloud:google-cloud-analytics-admin en Java, @google-analytics/admin en Node.js, cloud.google.com/go/analytics/admin/apiv1beta en Go, Google.Analytics.Admin.V1Beta en .NET, google/analytics-admin en PHP y la gema google-analytics-admin-v1alpha en Ruby.
Lo que no está en skills/ pero sí en el repo
El directorio plugins/cloud/data-agent-kit/ empaqueta como submódulos de git los plugins de Google Data Cloud. No son skills del catálogo, son repositorios externos anclados a una versión concreta, y por eso aparecen vacíos hasta que se ejecuta git submodule update --init.
Ahí viven los productos de datos que no tienen skill propio en skills/cloud/: Looker anclado en 0.3.5, Dataproc en 0.1.0, Knowledge Catalog en 0.5.2, Oracle Database en 0.2.3, Firestore en 0.3.1, BigQuery Data Analytics en 0.2.1 y el Data Agent Kit Starter Pack en 0.6.1, entre otros.
Si buscabas Looker o Dataproc en skills/cloud/ y no los encontraste, es por esto: están en el repositorio, pero como plugin externo, no como skill. El mecanismo completo de plugins y marketplace se cubre en el capítulo 11.
Para instalarlos, los comandos son los del README.md, sin variaciones:
# Todos los skills del catálogo, con selector interactivo
npx skills add google/skills
# Claude Code
claude plugin marketplace add google/skills
claude plugin install <plugin>@google-plugins
# Codex
codex plugin marketplace add google/skills
# Antigravity CLI, apuntando a la ruta del plugin
agy plugin install https://github.com/google/skills/plugins/cloud/data-agent-kit/spanner
El README.md también enlaza skills de Google que viven fuera de este catálogo y que tocan datos, entre ellos Advanced Google Cloud Storage Skills y Firestore Skills.
Qué copiar de esta familia
Si escribes tus propios skills siguiendo el curso de Agent Skills, esta franja del catálogo deja cuatro lecciones repetidas:
- Particiona por audiencia, no por producto. BigQuery son tres skills porque hay tres formas de trabajarlo: SQL de gestión, SQL de IA y Python estilo pandas. Cada
descriptiondice cuándo no usarse y remite al hermano correcto. - La
descriptiones el router. Enbigquery-bigframes,datalineage-summaryygoogle-analytics-data-api-basics, la frase “Don’t use for…” hace más trabajo que cualquier documentación del cuerpo. - Prohíbe modos de fallo concretos. El bloque de guardrails de
datalineage-bigquery-asset-impact-analysisno habla en abstracto: prohíbe adivinar nombres de tabla y prohíbe afirmar que se escribió un archivo que no se escribió. - Referencias grandes,
SKILL.mdpequeño.bigquery-ai-mltiene 2.9 KB de cuerpo y dieciséis referencias.google-cloud-storage-basicstiene 7.7 KB de cuerpo y más de 130 KB de referencias. El cuerpo solo enruta.
Y una advertencia que vale para todo el curso: el README.md del repositorio declara que está under active development. Los conteos, las versiones ancladas de los submódulos y hasta los nombres de producto de la tabla de renombres cambian. Verifica con ls y grep antes de asumir.
Resumen
- La familia de datos no vive en una carpeta propia: se descubre con
grepsobremetadata.categoryenskills/cloud/, más los dos skills deskills/analytics/. - Los conteos verificados son 5 skills en
BigDataAndAnalytics, 4 enDatabases, 3 enStoragey 2 enGoogleAnalytics, másbigquery-ai-mlcatalogado bajoAiAndMachineLearning. - BigQuery está partido en
bigquery-basicspara gestión y SQL,bigquery-ai-mlpara funcionesAI.*yVECTOR_SEARCH, ybigquery-bigframespara la API estilo pandas. datalineage-summaryydatalineage-bigquery-asset-impact-analysisson procedimientos de investigación sobre la herramienta MCPsearch_lineage, con formatos de salida y guardrails prescritos.alloydb-basics,cloud-sql-basics,spanner-basicsybigtable-basicscubren las bases gestionadas, con directivas de seguridad y de diseño de claves muy explícitas.google-cloud-storage-basicses el skill más grande de la familia, con diez referencias y una sección de atribución obligatoria víaCLOUDSDK_METRICS_ENVIRONMENT.managed-airflow-migrationsdocumenta cambios rompedores versión por versión hacia Airflow 2.11.1 y Airflow 3.- Las soluciones de Spark, lakehouse y ciencia de datos aportan la tabla de renombres: BigLake pasa a Lakehouse for Apache Iceberg, Dataproc Serverless a Managed Service for Apache Spark y Dataplex a Knowledge Catalog, aunque las APIs conserven los nombres viejos.
- Los dos skills de Google Analytics separan reportería, con la Data API v1beta, de configuración, con la Admin API y sus capacidades exclusivas de
v1alpha. - Looker, Dataproc, Knowledge Catalog y Firestore no son skills del catálogo: son plugins en
plugins/cloud/data-agent-kit/, anclados como submódulos a versiones concretas.
Siguiente: Skills de publicidad: Google Ads, Data Manager e IMA SDK