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

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. 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.enable permission. 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.

    Enable the APIs

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 permiso dataform.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:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. 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.

  3. Haz clic en Agregar repositorio.

  4. 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.

  5. 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.

  6. 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:

  1. En tu proveedor de Git, haz lo siguiente:

    Azure DevOps Services

    1. En Azure DevOps Services, crea una clave SSH privada.
    2. Sube la clave SSH pública a tu repositorio de Azure DevOps Services.

    Bitbucket

    1. En Bitbucket, crea una clave SSH privada.
    2. Sube la clave SSH pública a tu repositorio de Bitbucket.

    GitHub

    1. En GitHub, comprueba si hay claves SSH existentes.
    2. Si no tienes claves SSH existentes o quieres usar una nueva, crea una clave SSH privada.
    3. Sube la clave SSH pública de GitHub a tu repositorio de GitHub.

    GitLab

    1. En GitLab, crea una clave SSH privada.
    2. Sube la clave SSH pública de GitLab a tu repositorio de GitLab.
  2. 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.

  3. 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.
    
  4. Otorga el rol roles/secretmanager.secretAccessor a la cuenta de servicio.

  5. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  6. 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.

  7. Selecciona el repositorio de BigQuery que deseas conectar al repositorio remoto.

  8. En el editor, selecciona la pestaña Configuración.

  9. Haz clic en Conectarse con Git.

  10. En el panel Conectarse al repositorio remoto, selecciona el botón de selección SSH.

  11. 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}, port es opcional.
    • URL similar a SCP: git@{host_name}:{repository_path}.
  12. En el campo Nombre de la rama remota predeterminada, escribe el nombre de la rama principal del repositorio de Git remoto.

  13. En el menú desplegable Secreto, selecciona el secreto que creaste que contiene la clave privada SSH.

  14. 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

    1. 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.com
      
    2. Copia una de las claves que se muestran, omitiendo ssh.dev.azure.com del principio de la línea. El valor que copies debe tener el siguiente formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por ejemplo:

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
      

      Verifica que esta clave siga actualizada con Azure DevOps Services.

    Bitbucket

    1. Para recuperar la clave de host pública de Bitbucket, ejecuta el siguiente comando en la terminal:

      curl https://bitbucket.org/site/ssh
      
    2. El comando devuelve una lista de claves de host públicas. Elige una de las claves de la lista y cópiala, omitiendo bitbucket.org del principio de la línea. El valor que copies debe tener el siguiente formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por ejemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
      

      Verifica que esta clave siga actualizada con Bitbucket.

    GitHub

    1. Para recuperar la clave de host pública de GitHub, consulta Huellas digitales de la clave SSH de GitHub.
    2. La página contiene una lista de claves de host públicas. Elige una de ellas y cópiala, omitiendo github.com del principio de la línea. El valor que copies debe tener el siguiente formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por ejemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
      

      Verifica que esta clave siga actualizada con GitHub.

    GitLab

    1. Para recuperar la clave de host público de GitLab, consulta las entradas de SSH known_hosts.
    2. La página contiene una lista de claves de host públicas. Elige una de ellas y cópiala, omitiendo gitlab.com del principio de la línea. El valor que copies debe tener el siguiente formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por ejemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
      

      Verifica que esta clave aún esté actualizada con GitLab.

  15. 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:

  1. En tu proveedor de Git, haz lo siguiente:

    GitHub

    1. 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:
      1. Selecciona el acceso al repositorio solo para los repositorios seleccionados y, luego, elige el repositorio al que deseas conectarte.

      2. Otorga acceso de lectura y escritura al contenido del repositorio.

      3. 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:
      1. Otorga a BigQuery el permiso repo.

      2. Establece un tiempo de vencimiento del token adecuado para tus necesidades.

    2. Si tu organización usa el inicio de sesión único (SSO) de SAML, autoriza el token.

    GitLab

    1. En GitLab, crea un token de acceso personal de GitLab.

    2. Asigna el nombre dataform al token (obligatorio).

    3. Otorga a BigQuery los permisos api, read_repository y write_repository.

    4. Establece un tiempo de vencimiento del token adecuado para tus necesidades.

  2. En Secret Manager, crea un secreto que contenga el token de acceso personal de tu repositorio remoto.

  3. 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.
    
  4. Otorga el rol roles/secretmanager.secretAccessor a la cuenta de servicio.

  5. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  6. 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.

  7. Selecciona el repositorio de BigQuery que deseas conectar al repositorio remoto.

  8. En el editor, selecciona la pestaña Configuración.

  9. Haz clic en Conectarse con Git.

  10. En el panel Conectarse al repositorio remoto, selecciona el botón de selección HTTPS.

  11. 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.

  12. En el campo Nombre de la rama remota predeterminada, escribe el nombre de la rama principal del repositorio de Git remoto.

  13. En el menú desplegable Secreto, selecciona el secreto que creaste y que contiene el token de acceso personal.

  14. 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:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. 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.

  3. Selecciona el repositorio de BigQuery cuya conexión deseas editar.

  4. En el editor, selecciona la pestaña Configuración.

  5. En la página del repositorio, haz clic en Editar conexión de Git.

  6. Editar la configuración de conexión

  7. Haz clic en Actualizar.

Comparte un repositorio

Para compartir un repositorio, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. 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.

  3. Busca el repositorio que quieres compartir.

  4. Haz clic en Abrir acciones y, luego, en Compartir.

  5. En el panel Permisos de uso compartido, haz clic en Agregar usuario o grupo.

  6. 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.

  7. En el campo Rol, elige el rol que quieres asignar a las principales nuevas.

  8. Haz clic en Guardar.

Borra un repositorio

Para borrar un repositorio y todo su contenido, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. 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.

  3. Busca el repositorio que quieres borrar.

  4. Haz clic en Abrir acciones y, luego, en Borrar.

  5. Haz clic en Borrar.

¿Qué sigue?