La integración con Git le permite sincronizar el código y las configuraciones de trabajos entre la consola de desarrollo de Realtime Compute for Apache Flink y un repositorio remoto de Git (GitHub, GitLab o Gitee). Utilice esta función para migrar código desde entornos locales, colaborar entre equipos, aplicar flujos de revisión de código y mantener un historial de cambios listo para auditorías.
Casos de uso
|
Caso de uso |
Problema que resuelve |
Enfoque recomendado |
|
Migración a la nube |
Envíe código Flink SQL local a un clúster de Flink en la nube mediante Git, sin necesidad de exportar o importar manualmente. |
Después de extraer el código, continúe el desarrollo directamente en la consola. La extracción no modifica el repositorio de Git. |
|
Desarrollo colaborativo |
Comparta y controle versiones de borradores y configuraciones de trabajos. Cree ramas de funciones (como |
Confirme todos los cambios de código SQL mediante Git y use la consola para extraer y verificar. Gestione las ramas de Git para mantener estable la rama principal. |
|
Aseguramiento de calidad y gobernanza de riesgos |
Use pull requests para revisar el código. Extraiga el código en la consola para realizar pruebas. Rastree los cambios e identifique problemas mediante el historial de confirmaciones. |
Confirme todos los cambios de código SQL mediante Git. Revise periódicamente el historial de confirmaciones para garantizar la trazabilidad de los cambios. |
|
Recuperación ante desastres y cumplimiento |
Git ofrece copias de seguridad distribuidas contra la eliminación accidental de archivos. Los registros de Git proporcionan un historial verificable de todos los cambios en la lógica de los trabajos para cumplir con auditorías. |
Envíe actualizaciones de código SQL a Git de forma regular. Recupere el código desde Git cuando sea necesario. Utilice los registros de Git para rastrear todas las operaciones esenciales. |
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un espacio de trabajo de Flink. Consulte Create a workspace
Acceso a un repositorio remoto de Git (GitHub, GitLab, Gitee o Alibaba Cloud DevOps)
Acceso a Internet habilitado para su espacio de trabajo de Flink. Consulte Configure internet access
(Para repositorios con lista de permitidos por IP) La dirección IP de su espacio de trabajo de Flink agregada a la lista de permitidos del repositorio
Limitaciones
|
Restricción |
Detalle |
|
Tipo de trabajo compatible |
Solo SQL |
|
Permisos |
Para configurar la integración con Git o editar una configuración existente, debe ser propietario del namespace o un miembro con permisos equivalentes |
|
Un repositorio por namespace |
Cada namespace se puede vincular únicamente a un repositorio de Git y a una sola rama. Para gestionar varios repositorios o ramas, create additional namespaces |
|
Profundidad de carpetas |
Máximo de siete niveles. Los archivos en el nivel ocho o superior no se pueden extraer hacia Flink |
|
Sincronización de archivos JSON |
Agregar o eliminar archivos |
|
Conflictos de fusión |
Evite editar el mismo archivo en Git y en la consola simultáneamente. Si ocurren ediciones concurrentes, Flink ejecuta una comprobación de conflictos durante el envío o la extracción, y requiere resolución manual |
Paso 1: Asociar un repositorio de Git con un namespace
Create an internet connection y test connectivity. Omita este paso si ya existe una conexión a Internet.
-
Vaya a la consola de desarrollo.
Inicie sesión en la consola de administración de Realtime Compute for Apache Flink.
En la columna Actions del espacio de trabajo destino, haga clic en Console.
-
Configure el repositorio de Git para el namespace.
En la esquina superior derecha, haga clic en la foto de perfil y luego en User Profile.
En la columna Actions de su namespace, haga clic en Git Config.
-
Complete la configuración del repositorio de Git.
Campo
Descripción
Provider
El proveedor de Git. Valores válidos: GitHub, GitLab, Gitee.
Repository URL
La URL de su repositorio de Git. Debe comenzar con
HTTPoHTTPSy terminar con.git. Máximo de 64 caracteres.Username
El nombre de usuario de su cuenta de Git. La cuenta debe tener los permisos obligatorios en el repositorio destino.
Personal Access Token
El token de acceso personal (PAT) utilizado para la autenticación.
Para obtener instrucciones, consulte Managing personal access tokens (GitHub) o Personal access tokens (GitLab).
Branch
La rama que se vinculará a este namespace. Cada namespace se puede vincular a una sola rama.
Haga clic en OK. El repositorio de Git y la rama quedan asociados a su namespace. Una vez completada la vinculación, el cuadro de diálogo Git Config muestra la URL del repositorio vinculado, el nombre de usuario, la rama y el estado de almacenamiento del Personal Access Token. Haga clic en Unbind para quitar la vinculación actual del repositorio. Para cambiar a otro repositorio o rama, haga clic en Git Config para desvincular el actual y luego vincule el nuevo.
Paso 2: Enviar o extraer actualizaciones
|
Operación |
Cuándo utilizarla |
|
Envíe código SQL y cambios de configuración desde la consola hacia el repositorio remoto de Git. |
|
|
Traiga código SQL o configuraciones de trabajos desde el repositorio remoto de Git hacia la consola. |
|
|
Corrija conflictos detectados durante un envío o extracción cuando el mismo archivo se editó en ambos lugares. |
Enviar cambios
En la página Development > ETL, haga clic en Git - Push.
En el campo Changes, revise las adiciones (A), modificaciones (M) y eliminaciones (D). Haga clic en una letra para ver las diferencias.
-
Introduzca un Commit Message y haga clic en Commit And Push. Si el envío se rechaza debido a conflictos, el sistema le solicitará extraer primero las actualizaciones del repositorio remoto. Después de extraerlas, resuelva cualquier conflicto de fusión y vuelva a enviar.
El cuadro de diálogo Git - Push contiene los campos Repository URL y Branch, lo que le permite confirmar el destino del envío antes de confirmar los cambios.
-
Verifique los resultados en su repositorio de Git. Cada nuevo borrador SQL enviado a Git genera dos archivos con el mismo nombre pero diferente extensión: Las actualizaciones modifican el archivo
.sqlo.jsoncorrespondiente.filename.sql— el código SQL.filename.json— las configuraciones del trabajo, incluido el nombre del borrador, ID del borrador, modo de ejecución y versión del motor.
Extraer cambios
En la página Development > ETL, haga clic en Git - Synchronize Changes para obtener el estado más reciente de Git. La hora de la última sincronización aparece a la derecha del icono. Si no es reciente, haga clic en el icono para actualizar. Si hay actualizaciones disponibles en Git, aparecerá Update Available junto al icono de extracción.
-
Haga clic en Git - Pull.
Si no existen conflictos, continúe con el paso 3 para ver los resultados.
Si se detectan conflictos, consulte Resolver conflictos de fusión a continuación.
En la barra de estado en la parte inferior de la página, cuando la rama de Git muestra main y se detectan nuevas confirmaciones remotas, aparece un enlace azul Update Available. Haga clic en este enlace (información sobre herramienta: Git - Pull) para iniciar una operación de extracción.
-
Cuando la página muestre Successfully pulled from the remote repository, la página ETL se actualizará y mostrará los borradores SQL extraídos. Después de la extracción, el borrador actual queda bloqueado por Git. Para modificarlo o eliminarlo, haga clic en Click To Unlock.
CREATE TEMPORARY TABLE test_source( a BIGINT, b INT ) WITH ( 'connector'='datagen' );
Resolver conflictos de fusión
Realtime Compute for Apache Flink no admite reversión global. Antes de resolver conflictos, realice una copia de seguridad de los datos críticos (por ejemplo, copie example.sql localmente) y evalúe el impacto operativo. Proceda con precaución, ya que manejar incorrectamente los conflictos puede tener consecuencias irreversibles.
En el archivo en conflicto, haga clic en Resolve.
-
En la página de resolución de conflictos, seleccione el código en conflicto y elija la acción adecuada.
Botón
Acción
Accept Current Change
Conserva la versión original del código.
Accept Incoming Change
Aplica el cambio proveniente del repositorio remoto de Git.
Accept Both Changes
Aplica tanto los cambios locales como los remotos.
<<<<<<< Upstream, based on branch 'master' of https://gitee.com/xxx/test.git (Current CREATE TEMPORARY TABLE vvpnntest_source( ======= CREATE TEMPORARY TABLE nntest_source( >>>>>>> c658aa9 vvp git pull (Incoming Change) a BIGINT, b INT ) WITH ( 'connector'='datagen' ); <<<<<<< Upstream, based on branch 'master' of https://gitee.com/xxx/test.git (Current CREATE TEMPORARY TABLE vvpnntest_sink( ======= CREATE TEMPORARY TABLE nntest_sink( >>>>>>> c658aa9 vvp git pull (Incoming Change) a BIGINT, b INT ) WITH( 'connector'='blackhole' ); <<<<<<< Upstream, based on branch 'master' of https://gitee.com/xxx/test.git (Current INSERT INTO vvpntest_sink ======= INSERT INTO nntest_sink >>>>>>> c658aa9 vvp git pull (Incoming Change) SELECT * <<<<<<< Upstream, based on branch 'master' of https://gitee.com/xxx/test.git (Current FROM vvpnntest_source; ======= Haga clic en Mark As Resolved.
Haga clic en Continue.
Pasos siguientes
Para operaciones comunes de Git como clonar repositorios, confirmar código y crear pull requests, consulte la guía de introducción de GitHub o el tutorial de Git de GitLab.
Para automatizar despliegues con CI/CD, consulte el inicio rápido de CI/CD de GitLab o la guía de inicio rápido de GitHub Actions.GitLab CI/CD Quick Start o GitHub Actions Quick Start