---
name: bq_create_dataset
kind: function
lang: py
domain: infra
version: "1.0.0"
purity: impure
signature: "def bq_create_dataset(client: BQClient, dataset_id: str, location: str = 'US', description: str = '', labels: dict[str, str] | None = None, default_table_expiration_ms: int = 0) -> dict"
description: "Crea un dataset en Google BigQuery con ubicacion, descripcion y labels. Usa client._client.create_dataset() del SDK oficial."
tags: [bigquery, gcp, dataset, create, google-cloud, python, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [google-cloud-bigquery]
params:
  - name: client
    desc: "instancia autenticada de BQClient"
  - name: dataset_id
    desc: "nombre del dataset dentro del proyecto (sin prefijo de proyecto)"
  - name: location
    desc: "ubicacion geografica del dataset: US, EU, us-central1, europe-west1, etc."
  - name: description
    desc: "descripcion opcional del dataset"
  - name: labels
    desc: "dict de labels key-value para categorizar el dataset"
  - name: default_table_expiration_ms
    desc: "tiempo de expiracion por defecto para tablas en milisegundos; 0 = sin expiracion"
output: "dict con dataset_id, project, full_id, location, description, labels, created, modified, default_table_expiration_ms"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/bigquery/datasets.py"
---

## Ejemplo

```python
from bigquery.client import bq_auth
from bigquery.datasets import bq_create_dataset

client = bq_auth("my-project")
ds = bq_create_dataset(
    client,
    "analytics",
    location="EU",
    description="Data warehouse principal",
    labels={"env": "prod", "team": "data"},
)
print(ds["full_id"], ds["location"])
# my-project.analytics EU
```

## Notas

Lanza `google.api_core.exceptions.Conflict` (409) si el dataset ya existe.
El `full_id` tiene formato `{project}.{dataset_id}` y puede usarse directamente como referencia en otras llamadas al SDK.
`default_table_expiration_ms` aplica a todas las tablas nuevas del dataset; las tablas existentes no se ven afectadas.
