Migrar datos de Amazon Redshift con una red de VPC

En este documento se explica cómo migrar datos de Amazon Redshift a BigQuery mediante una VPC.

Si tienes una instancia privada de Amazon Redshift en AWS, puedes migrar esos datos a BigQuery creando una red de nube privada virtual (VPC) y conectándola con la red de VPC de Amazon Redshift. El proceso de migración de datos funciona de la siguiente manera:

  1. Crea una red de VPC en el proyecto que quieras usar para la transferencia. La red de VPC no puede ser una red de VPC compartida.
  2. Configura una red privada virtual (VPN) y conecta la red de VPC de tu proyecto con la red de VPC de Amazon Redshift.
  3. Al configurar la transferencia, debes especificar la red de VPC de tu proyecto y un intervalo de IPs reservado.
  4. BigQuery Data Transfer Service crea un proyecto de arrendatario y lo asocia al proyecto que estés usando para la transferencia.
  5. BigQuery Data Transfer Service crea una red de VPC con una subred en el proyecto de arrendatario, usando el intervalo de IPs reservado que hayas especificado.
  6. BigQuery Data Transfer Service crea un peering de VPC entre la red de VPC de tu proyecto y la red de VPC del proyecto de inquilino.
  7. La migración de BigQuery Data Transfer Service se ejecuta en el proyecto de inquilino. Inicia una operación de descarga de Amazon Redshift a un área de stage de un segmento de Amazon S3. La velocidad de descarga se determina en función de la configuración de tu clúster.
  8. La migración de BigQuery Data Transfer Service transfiere tus datos del segmento de Amazon S3 a BigQuery.

Si quieres transferir datos de tu instancia de Amazon Redshift a través de IPs públicas, puedes migrar tus datos de Amazon Redshift a BigQuery siguiendo estas instrucciones.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  7. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Definir los permisos necesarios

    Antes de crear una transferencia de Amazon Redshift, sigue estos pasos:

    1. Asegúrate de que la persona que cree la transferencia tenga los siguientes permisos de gestión de identidades y accesos (IAM) en BigQuery:

      • Permisos de bigquery.transfers.update para crear la transferencia
      • Permisos de bigquery.datasets.update en el conjunto de datos de destino

      El rol de gestión de identidades y accesos predefinido role/bigquery.admin incluye los permisos bigquery.transfers.update y bigquery.datasets.update. Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery Data Transfer Service, consulta el artículo sobre control de acceso.

    2. Consulta la documentación de Amazon S3 para asegurarte de que has configurado los permisos necesarios para habilitar la transferencia. Como mínimo, los datos de origen de Amazon S3 deben tener aplicada la política gestionada por AWS AmazonS3ReadOnlyAccess.

    3. Concede los permisos de gestión de identidades y accesos adecuados para crear y eliminar el emparejamiento entre redes de VPC a la persona que vaya a configurar la transferencia. El servicio usa las Google Cloud credenciales de usuario de la persona para crear la conexión de intercambio de tráfico entre VPCs.

      • Permisos para crear un emparejamiento de VPC: compute.networks.addPeering
      • Permisos para eliminar el emparejamiento de VPC: compute.networks.removePeering

      Los roles de gestión de identidades y accesos predefinidos roles/project.owner, roles/project.editor y roles/compute.networkAdmin incluyen los permisos compute.networks.addPeering y compute.networks.removePeering de forma predeterminada.

    Crear conjunto de datos

    Crea un conjunto de datos de BigQuery para almacenar tus datos. No es necesario que crees ninguna tabla.

    Conceder acceso a tu clúster de Amazon Redshift

    Añada los siguientes intervalos de IP de su clúster de Amazon Redshift privado a una lista de permitidas configurando las reglas del grupo de seguridad. En un paso posterior, definirás el intervalo de IP privadas en esta red de VPC al configurar la transferencia.

    Conceder acceso a tu segmento de Amazon S3

    Debes tener un segmento de Amazon S3 que sirva como área de almacenamiento temporal para transferir los datos de Amazon Redshift a BigQuery. Para obtener instrucciones detalladas, consulta la documentación de Amazon.

    1. Te recomendamos que crees un usuario de Amazon IAM específico y que le concedas solo acceso de lectura a Amazon Redshift y acceso de lectura y escritura a Amazon S3. Para completar este paso, puedes aplicar las siguientes políticas:

      Permisos de Amazon para la migración de Amazon Redshift

    2. Crea un par de claves de acceso de usuario de gestión de identidades y accesos de Amazon.

    Configurar el control de cargas de trabajo con una cola de migración independiente

    También puedes definir una cola de Amazon Redshift para la migración con el fin de limitar y separar los recursos que se usan en la migración. Puedes configurar esta cola de migración con un número máximo de consultas simultáneas. Después, puedes asociar un grupo de usuarios de migración con la cola y usar esas credenciales al configurar la migración para transferir datos a BigQuery. El servicio de transferencia solo tiene acceso a la cola de migración.

    Recoger información sobre la transferencia

    Reúne la información que necesitas para configurar la migración con BigQuery Data Transfer Service:

    • Obtén la VPC y el intervalo de IP reservadas en Amazon Redshift.
    • Sigue estas instrucciones para obtener la URL de JDBC.
    • Obtén el nombre de usuario y la contraseña de un usuario con los permisos adecuados para acceder a tu base de datos de Amazon Redshift.
    • Sigue las instrucciones que se indican en el artículo Grant access to your Amazon S3 bucket (Conceder acceso a tu segmento de Amazon S3) para obtener un par de claves de acceso de AWS.
    • Obtén el URI del segmento de Amazon S3 que quieras usar para la transferencia. Te recomendamos que configures una política de ciclo de vida para este segmento y así evitar cargos innecesarios. El tiempo de vencimiento recomendado es de 24 horas para que haya tiempo suficiente para transferir todos los datos a BigQuery.

    Evalúa tus datos

    Como parte de la transferencia de datos, BigQuery Data Transfer Service escribe datos de Amazon Redshift en Cloud Storage como archivos CSV. Si estos archivos contienen el carácter ASCII 0, no se pueden cargar en BigQuery. Le recomendamos que evalúe sus datos para determinar si esto podría suponer un problema para usted. Si es así, puedes solucionar este problema exportando tus datos a Amazon S3 como archivos Parquet y, a continuación, importando esos archivos mediante BigQuery Data Transfer Service. Para obtener más información, consulta la descripción general de las transferencias de Amazon S3.

    Configurar la red de VPC y la VPN

    1. Asegúrate de que tienes permisos para habilitar el peering de VPC. Para obtener más información, consulta Definir permisos obligatorios.

    2. Sigue las instrucciones de esta guía para configurar una red de Google Cloud VPC, una VPN entre la red de VPC de tu proyectoGoogle Cloud y la red de VPC de Amazon Redshift, y el emparejamiento de VPC.

    3. Configura Amazon Redshift para permitir la conexión a tu VPN. Para obtener más información, consulta Grupos de seguridad de clústeres de Amazon Redshift.

    4. En la consola de Google Cloud , ve a la página Redes de VPC para verificar que tu red de VPC de tuGoogle Cloud proyecto esté conectada a Amazon Redshift a través de la VPN. Google Cloud

      Ir a redes de VPC

      En la página de la consola se muestran todas tus redes de VPC.

    Configurar una transferencia de Amazon Redshift

    Para configurar una transferencia de Amazon Redshift, sigue estas instrucciones:

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

      Ir a BigQuery

    2. Haz clic en Transferencias de datos.

    3. Haz clic en Crear transferencia.

    4. En la sección Tipo de fuente, seleccione Migración: Amazon Redshift en la lista Fuente.

    5. En la sección Nombre de la configuración de transferencia, indica un nombre para la transferencia, como My migration, en el campo Nombre visible. El nombre visible puede ser cualquier valor que te permita identificar fácilmente la transferencia si necesitas modificarla más adelante.

    6. En la sección Configuración de destino, elija el conjunto de datos que ha creado en la lista Conjunto de datos.

    7. En la sección Detalles de la fuente de datos, haga lo siguiente:

      1. En URL de conexión JDBC de Amazon Redshift, proporciona la URL de JDBC para acceder a tu clúster de Amazon Redshift.
      2. En Nombre de usuario de tu base de datos, introduce el nombre de usuario de la base de datos de Amazon Redshift que quieras migrar.
      3. En Contraseña de la base de datos, introduce la contraseña de la base de datos.

      4. En ID de clave de acceso y Clave de acceso secreta, introduce el par de claves de acceso que has obtenido en Conceder acceso a tu segmento de S3.

      5. En URI de Amazon S3, introduce el URI del segmento de S3 que usarás como área de almacenamiento provisional.

      6. En Esquema de Amazon Redshift, introduce el esquema de Amazon Redshift que vas a migrar.

      7. En Patrones de nombres de tabla, especifica un nombre o un patrón para que coincida con los nombres de tabla del esquema. Puede usar expresiones regulares para especificar el patrón con el formato <table1Regex>;<table2Regex>. El patrón debe seguir la sintaxis de expresiones regulares de Java. Por ejemplo:

        • lineitem;ordertb coincide con las tablas llamadas lineitem y ordertb.
        • .* coincide con todas las tablas.

        Deje este campo vacío para migrar todas las tablas del esquema especificado.

      8. En VPC y el intervalo de IPs reservado, especifica el nombre de tu red de VPC y el intervalo de direcciones IP privadas que se va a usar en la red de VPC del proyecto de inquilino. Especifica el intervalo de direcciones IP como un bloque CIDR.

        Campo CIDR de migración de Amazon Redshift

        • El formato es VPC_network_name:CIDR, por ejemplo: my_vpc:10.251.1.0/24.
        • Usa intervalos de direcciones de red de VPC privadas estándar con la notación CIDR, que empiecen por 10.x.x.x.
        • El intervalo de IP debe tener más de 10 direcciones IP.
        • El intervalo de IPs no debe solaparse con ninguna subred de la red VPC de tu proyecto ni con la red VPC de Amazon Redshift.
        • Si tienes configuradas varias transferencias para la misma instancia de Amazon Redshift, asegúrate de usar el mismo valor de VPC_network_name:CIDR en cada una de ellas para que varias transferencias puedan reutilizar la misma infraestructura de migración.
    8. Opcional: En la sección Opciones de notificación, haz lo siguiente:

      1. Haz clic en el interruptor para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de las transferencias recibirá una notificación por correo cuando falle una ejecución de transferencia.
      2. En Selecciona un tema de Pub/Sub, elige el tema o haz clic en Crear un tema. Esta opción configura las notificaciones de Pub/Sub sobre la transferencia.
    9. Haz clic en Guardar.

    10. La consola muestra todos los detalles de la configuración de la transferencia, incluido el nombre del recurso de esta transferencia. Google Cloud

    Cuotas y límites

    Al migrar una instancia privada de Amazon Redshift con una red de VPC, el agente de migración se ejecuta en una infraestructura de un solo inquilino. Debido a los límites de recursos de computación, se permiten como máximo 5 ejecuciones de transferencia simultáneas.

    BigQuery tiene una cuota de carga de 15 TB por cada tarea de carga y por cada tabla. Internamente, Amazon Redshift comprime los datos de la tabla, por lo que el tamaño de la tabla exportada será mayor que el tamaño de la tabla que indica Amazon Redshift. Si tienes previsto migrar una tabla de más de 15 TB, ponte en contacto con Cloud Customer Care primero.

    Es posible que se apliquen cargos adicionales fuera de Google por utilizar este servicio. Consulta las páginas de precios de Amazon Redshift y Amazon S3 para obtener más información.

    Debido al modelo de coherencia de Amazon S3, es posible que algunos archivos no se incluyan en la transferencia a BigQuery.

    Siguientes pasos