Crea y administra repositorios
Los repositorios de BigQuery te permiten control de versión de tus archivos de código y colaborar con tu equipo. Puedes crear, compartir y borrar repositorios de BigQuery, o bien conectarlos a un repositorio de Git de terceros.
Para obtener una experiencia de control de versión basada en carpetas, te recomendamos que uses los repositorios de Git de BigQuery Studio (versión preliminar). Esta integración te permite trabajar con ramas de Git directamente en el explorador de archivos de BigQuery Studio y clonar varios repositorios a la vez sin administrar espacios de trabajo independientes.
Antes de comenzar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Roles obligatorios
Para obtener los permisos que necesitas para trabajar con repositorios y espacios de trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM en repositorios y espacios de trabajo:
-
Crear y administrar repositorios compartidos:
Propietario del código (
roles/dataform.codeOwner) -
Crea y borra espacios de trabajo en repositorios compartidos:
Editor de código (
roles/dataform.codeEditor) -
Crea, modifica y control de versión de los archivos en los espacios de trabajo de los repositorios compartidos:
Editor de código (
roles/dataform.codeEditor) -
Visualiza los espacios de trabajo y sus archivos en repositorios compartidos:
Vista de código (
roles/dataform.codeViewer) -
Crea y administra repositorios privados, incluidas todas las acciones con espacios de trabajo y archivos en el repositorio privado:
Creador de código (
roles/dataform.codeCreator)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Las principales que tienen el rol de editor de código en un repositorio pueden editar todos los espacios de trabajo del repositorio.
Los repositorios privados que crees seguirán siendo visibles para las principales a las que se les otorguen los roles de administrador de BigQuery o de BigQuery Studio a nivel del proyecto. Estas principales pueden compartir tu repositorio privado con otros usuarios.
Consideraciones de seguridad para los repositorios
Debido a que los recursos de código en BigQuery se basan en Dataform, debes tener en cuenta las siguientes implicaciones de seguridad para los usuarios con acceso a estos recursos:
- La visibilidad de los recursos de código se rige por los permisos de Dataform a nivel del proyecto. Los usuarios con el permiso
dataform.repositories.list, que se incluye en los roles estándar de BigQuery, como Usuario de trabajos de BigQuery, Usuario de BigQuery Studio y Usuario de BigQuery, pueden ver todos los recursos de código en el panel Explorador del proyecto de Google Cloud , independientemente de si crearon estos recursos o si se compartieron con ellos. Para restringir la visibilidad, puedes crear roles personalizados que excluyan el permisodataform.repositories.list. - Los usuarios que pueden editar estos recursos pueden acceder a cualquier secreto compartido con el agente de servicio de Dataform. Para proteger tus credenciales, restringe el acceso de creación y edición a los usuarios de confianza, y limita los secretos a los que puede acceder el agente de servicio de Dataform. Para obtener más información, consulta Acceso a secretos durante la instalación de paquetes.
Si deseas obtener más información, consulta Consideraciones de seguridad para los permisos de Dataform.
Crea un repositorio
Para crear un repositorio de BigQuery, sigue estos pasos:
En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Haz clic en Agregar repositorio.
En el panel Crear repositorio, en el campo ID del repositorio, escribe un ID único.
Los IDs solo pueden incluir números, letras, guiones y guiones bajos.
En la lista desplegable Región, selecciona una región de BigQuery para almacenar el repositorio y su contenido. Selecciona la región de BigQuery más cercana a tu ubicación.
Para obtener una lista de las regiones de BigQuery disponibles, consulta Ubicaciones de BigQuery Studio. La región del repositorio no tiene que coincidir con la ubicación de tus conjuntos de datos de BigQuery.
Haz clic en Crear.
Conéctate a un repositorio de terceros
En esta sección, se muestra cómo conectar un repositorio de BigQuery a un repositorio remoto. Después de conectar los repositorios, puedes realizar acciones de Git en los archivos de los espacios de trabajo que contiene el repositorio. Por ejemplo, extraer actualizaciones del repositorio remoto y enviar cambios a este.
Te recomendamos que crees un repositorio de BigQuery dedicado para cada repositorio remoto al que te conectes. Asigna al repositorio de BigQuery un nombre similar al del repositorio remoto para que la asignación sea clara.
Puedes conectar un repositorio remoto a través de HTTPS o SSH. La conexión de un repositorio de BigQuery a un repositorio remoto puede fallar si el repositorio remoto no está abierto a la Internet pública, por ejemplo, si está detrás de un firewall. En la siguiente tabla, se enumeran los proveedores de Git compatibles y los métodos de conexión que están disponibles para sus repositorios:
| Proveedor de Git | Método de conexión |
|---|---|
| Azure DevOps Services | SSH |
| Bitbucket | SSH |
| GitHub | SSH o HTTPS |
| GitLab | SSH o HTTPS |
Conecta un repositorio remoto a través de SSH
Para conectar un repositorio remoto a través de SSH, debes generar una clave SSH y un secreto de Secret Manager. La clave SSH consta de una clave SSH pública y una clave SSH privada. Debes compartir la clave SSH pública con tu proveedor de Git y crear un Secret de Secret Manager con la clave SSH privada. Luego, comparte el secreto con el agente de servicio de Dataform.
BigQuery usa el Secret con la clave SSH privada para acceder a tu proveedor de Git y confirmar los cambios en nombre de los usuarios. BigQuery realiza estas confirmaciones con la dirección de correo electrónico de Google Cloud del usuario para que puedas saber quién realizó cada confirmación.
Para conectar un repositorio remoto a un repositorio de BigQuery a través de SSH, sigue estos pasos:
En tu proveedor de Git, haz lo siguiente:
Azure DevOps Services
- En Azure DevOps Services, crea una clave SSH privada.
- Sube la clave SSH pública a tu repositorio de Azure DevOps Services.
Bitbucket
- En Bitbucket, crea una clave SSH privada.
- Sube la clave SSH pública a tu repositorio de Bitbucket.
GitHub
- En GitHub, comprueba si hay claves SSH existentes.
- Si no tienes claves SSH existentes o quieres usar una nueva, crea una clave SSH privada.
- Sube la clave SSH pública de GitHub a tu repositorio de GitHub.
GitLab
- En GitLab, crea una clave SSH privada.
- Sube la clave SSH pública de GitLab a tu repositorio de GitLab.
En Secret Manager, crea un Secret y pega tu clave SSH privada como el valor del Secret. Tu clave SSH privada debe almacenarse en un archivo similar a
~/.ssh/id_ed25519. Asigna un nombre al secreto para que puedas encontrarlo en el futuro.Otorga acceso al secreto al agente de servicio de Dataform.
El ID del agente de servicio de Dataform tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.Otorga el rol
roles/secretmanager.secretAccessora la cuenta de servicio.En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Selecciona el repositorio de BigQuery que deseas conectar al repositorio remoto.
En el editor, selecciona la pestaña Configuración.
Haz clic en Conectarse con Git.
En el panel Conectarse al repositorio remoto, selecciona el botón de selección SSH.
En el campo URL del repositorio de Git remoto, escribe la URL del repositorio de Git remoto, que termina con
.git.La URL del repositorio de Git remoto debe tener uno de los siguientes formatos:
- URL absoluta:
ssh://git@{host_name}[:{port}]/{repository_path},portes opcional. - URL similar a SCP:
git@{host_name}:{repository_path}.
- URL absoluta:
En el campo Nombre de la rama remota predeterminada, escribe el nombre de la rama principal del repositorio de Git remoto.
En el menú desplegable Secreto, selecciona el secreto que creaste que contiene la clave privada SSH.
En el campo Valor de clave de host público de SSH, escribe la clave de host público de tu proveedor de Git.
Azure DevOps Services
Para recuperar la clave de host pública de Azure DevOps Services, ejecuta el siguiente comando en la terminal:
ssh-keyscan -t rsa ssh.dev.azure.comCopia una de las claves que se muestran, omitiendo
ssh.dev.azure.comdel principio de la línea. El valor que copies debe tener el siguiente formato:ALGORITHM BASE64_KEY_VALUEPor ejemplo:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8HVerifica que esta clave siga actualizada con Azure DevOps Services.
Bitbucket
Para recuperar la clave de host pública de Bitbucket, ejecuta el siguiente comando en la terminal:
curl https://bitbucket.org/site/sshEl comando devuelve una lista de claves de host públicas. Elige una de las claves de la lista y cópiala, omitiendo
bitbucket.orgdel principio de la línea. El valor que copies debe tener el siguiente formato:ALGORITHM BASE64_KEY_VALUEPor ejemplo:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUOVerifica que esta clave siga actualizada con Bitbucket.
GitHub
- Para recuperar la clave de host pública de GitHub, consulta Huellas digitales de la clave SSH de GitHub.
La página contiene una lista de claves de host públicas. Elige una de ellas y cópiala, omitiendo
github.comdel principio de la línea. El valor que copies debe tener el siguiente formato:ALGORITHM BASE64_KEY_VALUEPor ejemplo:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJlVerifica que esta clave siga actualizada con GitHub.
GitLab
- Para recuperar la clave de host público de GitLab, consulta
las entradas de SSH
known_hosts. La página contiene una lista de claves de host públicas. Elige una de ellas y cópiala, omitiendo
gitlab.comdel principio de la línea. El valor que copies debe tener el siguiente formato:ALGORITHM BASE64_KEY_VALUEPor ejemplo:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdfVerifica que esta clave aún esté actualizada con GitLab.
Haz clic en Conectar.
Conecta un repositorio remoto a través de HTTPS
Para conectar un repositorio remoto a través de HTTPS, debes crear un secreto de Secret Manager con un token de acceso personal y compartir el secreto con el agente de servicio de Dataform.
Luego, BigQuery usa el token de acceso para acceder a tu proveedor de Git y confirmar los cambios en nombre de los usuarios. BigQuery realiza estas confirmaciones con la dirección de correo electrónico de Google Cloud del usuario para que puedas saber quién realizó cada confirmación.
Para conectar un repositorio remoto a un repositorio de BigQuery a través de HTTPS, sigue estos pasos:
En tu proveedor de Git, haz lo siguiente:
GitHub
En GitHub, crea un token de acceso personal detallado o un token de acceso personal clásico.
- Para obtener un token de acceso personal de GitHub detallado, haz lo siguiente:
Selecciona el acceso al repositorio solo para los repositorios seleccionados y, luego, elige el repositorio al que deseas conectarte.
Otorga acceso de lectura y escritura al contenido del repositorio.
Establece un tiempo de vencimiento del token adecuado para tus necesidades.
- Para obtener un token de acceso personal clásico de GitHub, haz lo siguiente:
Otorga a BigQuery el permiso
repo.Establece un tiempo de vencimiento del token adecuado para tus necesidades.
Si tu organización usa el inicio de sesión único (SSO) de SAML, autoriza el token.
GitLab
En GitLab, crea un token de acceso personal de GitLab.
Asigna el nombre
dataformal token (obligatorio).Otorga a BigQuery los permisos
api,read_repositoryywrite_repository.Establece un tiempo de vencimiento del token adecuado para tus necesidades.
En Secret Manager, crea un secreto que contenga el token de acceso personal de tu repositorio remoto.
Otorga acceso al secreto al agente de servicio de Dataform.
El ID del agente de servicio de Dataform tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.Otorga el rol
roles/secretmanager.secretAccessora la cuenta de servicio.En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Selecciona el repositorio de BigQuery que deseas conectar al repositorio remoto.
En el editor, selecciona la pestaña Configuración.
Haz clic en Conectarse con Git.
En el panel Conectarse al repositorio remoto, selecciona el botón de selección HTTPS.
En el campo URL del repositorio de Git remoto, escribe la URL del repositorio de Git remoto, que termina con
.git.La URL del repositorio remoto de Git no puede contener nombres de usuario ni contraseñas.
En el campo Nombre de la rama remota predeterminada, escribe el nombre de la rama principal del repositorio de Git remoto.
En el menú desplegable Secreto, selecciona el secreto que creaste y que contiene el token de acceso personal.
Haz clic en Conectar.
Edita la conexión del repositorio remoto
Para editar una conexión entre un repositorio de BigQuery y un repositorio remoto de Git, sigue estos pasos:
En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Selecciona el repositorio de BigQuery cuya conexión deseas editar.
En el editor, selecciona la pestaña Configuración.
En la página del repositorio, haz clic en Editar conexión de Git.
Editar la configuración de conexión
Haz clic en Actualizar.
Comparte un repositorio
Para compartir un repositorio, sigue estos pasos:
En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Busca el repositorio que quieres compartir.
Haz clic en Abrir acciones y, luego, en Compartir.
En el panel Permisos de uso compartido, haz clic en Agregar usuario o grupo.
En el panel Agregar usuario o grupo, en el campo Principales nuevas, escribe uno o más nombres de usuario o grupo, separados por comas.
En el campo Rol, elige el rol que quieres asignar a las principales nuevas.
Haz clic en Guardar.
Borra un repositorio
Para borrar un repositorio y todo su contenido, sigue estos pasos:
En la consola de Google Cloud , ve a la página BigQuery.
En el panel izquierdo, haz clic en Control de código fuente.
Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
Busca el repositorio que quieres borrar.
Haz clic en Abrir acciones y, luego, en Borrar.
Haz clic en Borrar.
¿Qué sigue?
- Aprende a administrar código con repositorios de Git de BigQuery Studio.
- Obtén información para crear espacios de trabajo.