Usar las API de DataStream

Para las empresas con muchas fuentes de datos aisladas, el acceso a los datos empresariales en toda la organización, en especial en tiempo real, es demasiado difícil. Esto da como resultado un mundo de acceso limitado y lento a los datos, lo que impide la capacidad de introspección y de innovación de la organización.

Datastream derriba las barreras de los datos organizativos aislados, ya que proporciona acceso casi en tiempo real para cambiar los datos de varias fuentes de datos locales y en la nube. Datastream proporciona una experiencia de configuración simple y una API de consumo unificado que democratiza el acceso de la organización a los datos empresariales más recientes disponibles en toda la organización, lo que impulsa situaciones integradas casi en tiempo real.

Una de esas situaciones es transferir datos de una base de datos de origen a un servicio de almacenamiento basado en la nube y transformar estos datos en un lenguaje legible para otras aplicaciones y servicios que se comunican con este servicio de almacenamiento.

En este instructivo, aprenderás a usar Datastream para transferir esquemas, tablas y datos desde una base de datos de Oracle de origen a una carpeta en un bucket de Cloud Storage. Cloud Storage es un servicio web para almacenar y acceder a datos en Google Cloud. El servicio combina el rendimiento y la escalabilidad de la nube de Google con funciones avanzadas de seguridad y uso compartido.

Como parte de la transferencia de esta información a una carpeta en el bucket de destino de Cloud Storage, Datastream traduce esta información a Avro. Avro se define mediante un esquema escrito en JavaScript Object Notation (JSON), y los datos y tablas incorporados en este esquema se pueden leer en cualquier lenguaje.

Objetivos

En este instructivo, aprenderás a realizar lo siguiente:

  • Configurar tus variables. Usarás estas variables cuando realices solicitudes a Datastream para crear y administrar perfiles de conexión y un flujo.
  • Crear y administrar perfiles de conexión de una base de datos de origen y un bucket de destino en Cloud Storage. Mediante la creación de estos perfiles de conexión, creas registros que contienen información sobre la base de datos de origen y el bucket de destino de Cloud Storage. La transmisión en Datastream usa la información en los perfiles de conexión para transferir datos de la base de datos de origen a una carpeta en el bucket de destino.
  • Crear y administrar una transmisión. Datastream usa esta transmisión para transferir datos, esquemas y tablas de la base de datos de origen a una carpeta en el bucket de destino.
  • Verificar que Datastream transfiera los datos y las tablas asociadas con un esquema de la base de datos de Oracle de origen a una carpeta en el bucket de destino y traduzca estos datos al formato de archivo Avro.
  • Limpiar los recursos que creaste en Datastream para que no consuman tu cuota y no se facturen en el futuro.

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

  • DataStream
  • Cloud Storage

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  6. Asegúrate de tener una base de datos de origen a la que pueda acceder Datastream. En este instructivo, se usa una base de datos de Oracle como fuente.
  7. Asegúrate de haber configurado un bucket de Cloud Storage de destino al que Datastream pueda acceder mediante la lista de IP permitidas o el método de conectividad de red de túnel SSH.
  8. Asegúrate de tener datos, tablas y esquemas en la base de datos de origen que Datastream pueda transferir a una carpeta en el bucket de Cloud Storage de destino.
  9. Descarga e instala Google Cloud Shell. Esta aplicación cliente te proporciona acceso de línea de comandos a tus recursos en la nube (incluido Datastream).
  10. Instalar y configurar la utilidad jq. Esta utilidad es un procesador JSON de línea de comandos liviano y flexible. Usarás este procesador para mostrar comandos cURL complejos en texto fácil de leer.

Configura tus variables

En esta sección, establecerás las siguientes variables:

  • $PROJECT: Esta variable está asociada a tu proyecto de Google Cloud. Todos los recursos de Google Cloud que asignas y usas deben pertenecer a un proyecto.
  • $TOKEN: Esta variable está asociada con un token de acceso. El token de acceso proporciona una sesión que Google Cloud Shell usa para realizar tareas en Datastream a través de las API de REST.
  • $ENV: Esta variable está asociada con el entorno que usas para transferir datos, esquemas y tablas de una base de datos de origen a una carpeta en un depósito de Cloud Storage de destino.
  1. Inicia tu aplicación de Google Cloud Shell.

  2. Después de autenticarte en tu aplicación, ingresa gcloud auth login.

  3. Cuando aparezca el cuadro Do you want to continue (Y/n)?, ingresa Y.

  4. Abre un navegador web y, luego, copia la URL proporcionada en el navegador.

  5. Autentica en el SDK de Google Cloud. Aparecerá un código en la página de acceso. Este código es tu token de acceso.

  6. Copia el token de acceso, pégalo en el parámetro Enter verification code: de tu aplicación de Google Cloud Shell y presiona Enter.

  7. Cuando se te solicite, ingresa PROJECT="[YOUR_PROJECT_NAME]" para establecer tu proyecto de Google Cloud como la variable de entorno $PROJECT.

  8. Cuando se te solicite, ingresa gcloud config set project [YOUR_PROJECT_NAME] para establecer tu proyecto de Google Cloud como el proyecto en el que deseas trabajar.

    El símbolo del sistema se actualizará para reflejar tu proyecto activo actual y respetará el siguiente formato: [USERNAME]@cloudshell:~ ([YOUR_PROJECT_NAME])$

  9. Cuando se te solicite, ingresa TOKEN=$(gcloud auth print-access-token) para recuperar el token de acceso y almacenarlo como una variable.

  10. Cuando se te solicite, ingresa ENV="[YOUR_ENVIRONMENT_NAME]" para establecer tu entorno como la variable de entorno.

  11. En el símbolo del sistema, ingresa los siguientes comandos para asegurarte de que tus variables $PROJECT, $TOKEN y $ENV estén configuradas de forma correcta:

    • echo $PROJECT
    • echo $TOKEN
    • echo $ENV

Ahora que configuraste tus variables, puedes realizar solicitudes a Datastream para crear y administrar los perfiles de conexión y una transmisión.

Crear y administrar perfiles de conexión

En esta sección, crearás y administrarás los perfiles de conexión de una base de datos de Oracle de origen y un bucket de Cloud Storage de destino.

Mediante la creación de estos perfiles de conexión, creas registros que contienen información sobre la base de datos de origen y el bucket de destino de Cloud Storage. Datastream usa la información en los perfiles de conexión para transferir datos de la base de datos de origen a una carpeta en el bucket de destino.

La creación y la administración de perfiles de conexión incluye lo siguiente:

  • Crear perfiles de conexión para una base de datos de Oracle de origen y un bucket de destino en Cloud Storage
  • Recuperar información detallada y de alto nivel sobre un perfil de conexión
  • Modificar un perfil de conexión
  • Realizar una llamada a la API de descubrimiento en el perfil de conexión de origen de Oracle. Esto te permite mirar dentro de la base de datos para ver los objetos asociados a ella. Estos objetos incluyen los esquemas y las tablas que contienen los datos de la base de datos. De esta manera, cuando usas Datastream para configurar una transmisión, es posible que no desees extraer todos los objetos de la base de datos, sino un subconjunto de los objetos (por ejemplo, solo ciertas tablas y esquemas de la base de datos). Usa la API de descubrimiento para ayudarte a encontrar (o descubrir) el subconjunto de objetos de base de datos que deseas extraer.

Crear perfiles de conexión

En esta sección, crearás dos perfiles de conexión a una base de datos de origen de Oracle y un bucket de destino en Cloud Storage.

  1. Crea un perfil de conexión a una base de datos de Oracle de origen. En el símbolo del sistema, ingresa el siguiente comando:

    ORACLE="{\"displayName\":\"[DISPLAY_NAME]\",\"oracle_profile\":{\"hostname\":\"[HOSTNAME],\"username\":\"[USERNAME]\",\"database_service\":\"[DATABASE_SERVICE]\",\"password\":\"[PASSWORD]\",\"port\":[PORT_NUMBER]},\"no_connectivity\":{}}"
    

    Usa la siguiente tabla para ayudarte a comprender los valores de los parámetros de la base de datos de Oracle de origen:

    Valor del parámetroReemplazar por
    [DISPLAY_NAME]El nombre visible del perfil de conexión a la base de datos de origen.
    [HOSTNAME]El nombre de host del servidor de la base de datos de origen.
    [USERNAME]El nombre de usuario de la cuenta de la base de datos de origen (por ejemplo, ROOT).
    [DATABASE_SERVICE]El servicio que garantiza que la base de datos de origen esté protegida y supervisada. Para las bases de datos de Oracle, el servicio de base de datos suele ser ORCL.
    [PASSWORD]Es la contraseña de la cuenta para la base de datos de origen.
    [PORT_NUMBER]El número de puerto reservado para la base de datos de origen. Para una base de datos de Oracle, el número de puerto suele ser 1521.
  2. En el mensaje, ingresa el comando echo $ORACLE | jq para ver el perfil de conexión de origen que creaste en texto fácil de leer.

    {
      "displayName": "[DISPLAY_NAME]",
      "oracle_profile": {
        "hostname": "[HOSTNAME]",
        "username": "[USERNAME]",
        "database_service": "[DATABASE_SERVICE]",
        "password": "[PASSWORD]",
        "port": [PORT_NUMBER]
       },
      "no_connectivity": {}
    }
    
  3. Envía el perfil de conexión de Oracle para que se pueda crear. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -d $ORACLE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[SOURCE_CONNECTION_PROFILE_ID]
    

    Usa la siguiente tabla para entender los valores de los parámetros de este comando:

    Valor del parámetroReemplazar por
    [DATASTREAM_VERSION]La versión actual de Datastream (por ejemplo, v1alpha1).
    [PROJECT_PATH]La ruta completa de tu proyecto de Google Cloud (por ejemplo, projects/$PROJECT/locations/[YOUR_PROJECT_LOCATION])).
    [SOURCE_CONNECTION_PROFILE_ID]El identificador único reservado para este perfil de conexión (por ejemplo, cp-1).
  4. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Crea un perfil de conexión a un bucket de destino en Cloud Storage. En el símbolo del sistema, ingresa el siguiente comando:

    GOOGLECLOUDSTORAGE="{\"displayName\":\"[DISPLAY_NAME]\",\"gcs_profile\":{\"bucket_name\":\"[BUCKET_NAME]\",\"root_path\":\"/[FOLDER_PATH]\"},\"no_connectivity\":{}}"
    

    Usa la siguiente tabla para comprender los valores de los parámetros del bucket de destino:

    Valor del parámetroReemplazar por
    [DISPLAY_NAME]El nombre visible del perfil de conexión al bucket de destino.
    [BUCKET_NAME]El nombre del bucket de destino.
    [FOLDER_PATH]La carpeta del bucket de destino a la que Datastream transferirá los datos de la base de datos de origen (por ejemplo, /root/path).
  6. En el mensaje, ingresa el comando echo $GOOGLECLOUDSTORAGE | jq para ver el perfil de conexión de destino que creaste en texto fácil de leer.

    {
      "displayName": "[DISPLAY_NAME]",
      "gcs_profile": {
        "bucket_name": "[BUCKET_NAME]",
        "root_path": "/[FOLDER_PATH]"
      },
      "no_connectivity": {}
    }
    
  7. Envía el perfil de conexión de Cloud Storage para que se pueda crear. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -d $GOOGLECLOUDSTORAGE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[DESTINATION_CONNECTION_PROFILE_ID]
    
  8. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  9. Confirma que se hayan creado ambos perfiles de conexión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  10. Verifica que recibas dos resultados que se muestren para los perfiles de conexión de origen y de destino.

    {
      "connectionProfiles": [
        {
          "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "gcsProfile": {
            "bucketName": "[BUCKET_NAME]",
            "rootPath": "[FOLDER_PATH]"
          },
          "noConnectivity": {}
        },
       {
        "name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "oracleProfile": {
          "hostname": "[HOSTNAME]",
          "port": [PORT_NUMBER],
          "username": "[USERNAME]",
          "databaseService": "[DATABASE_SERVICE]"
        },
        "noConnectivity": {}
        }
      ]
    }
    

Administrar perfiles de conexión

En esta sección, debes administrar los perfiles de conexión que creaste para una base de datos de Oracle de origen y un bucket de destino en Cloud Storage. Incluye lo siguiente:

  • Recuperar información detallada y de alto nivel sobre el perfil de conexión de destino de Cloud Storage
  • Modificar este perfil de conexión. En este instructivo, cambiarás la carpeta del bucket de destino de Cloud Storage a /root/tutorial. Datastream transferirá los datos de la base de datos de origen a esta carpeta.
  • Realiza una llamada a la API de Descubre en el perfil de conexión de origen de Oracle
  1. Recupera información de alto nivel sobre el perfil de conexión de destino de Cloud Storage. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  2. Verifica que veas información de alto nivel sobre este perfil de conexión.

    {
      "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "gcsProfile": {
        "bucketName": "[BUCKET_NAME]",
        "rootPath": "[FOLDER_PATH]"
      },
      "noConnectivity": {}
    }
    
  3. Recupera información detallada sobre este perfil de conexión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  4. Verifica que veas información detallada sobre el perfil de conexión.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "[FOLDER_PATH]"
        },
        "noConnectivity": {}
      }
    }
    
  5. Modifica este perfil de conexión. Para ello, primero configura una variable UPDATE. Esta variable contiene los valores del perfil de conexión que deseas cambiar. En este instructivo, cambiarás la carpeta del bucket de destino a /root/tutorial.

    Para configurar la variable, en el mensaje, ingresa el siguiente comando:

    UPDATE="{\"gcsProfile\":{\"rootPath\":\"/root/tutorial\"}}"
  6. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]?update_mask=gcsProfile.rootPath
    
  7. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Confirma que se modificó el perfil de conexión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  9. Verifica que la carpeta del bucket de destino del perfil de conexión de Cloud Storage ahora sea /root/tutorial.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "/root/tutorial"
        },
        "noConnectivity": {}
      }
    }
    
  10. Usa la API de descubrimiento de Datastream para descubrir los esquemas y tablas de la base de datos de Oracle de origen. Datastream accederá a esta base de datos a través del perfil de conexión de origen.

    1. Primero, descubre los esquemas de la base de datos de Oracle. En el símbolo del sistema, ingresa el siguiente comando:

      curl -X POST -d "{"connection_profile_name":"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]"}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
        

    2. Verifica que Datastream recupere todos los esquemas de tu base de datos.

    3. A continuación, recupera las tablas de un esquema en tu base de datos. En este instructivo, usarás la API de descubrimiento para recuperar las tablas del esquema ROOT. Sin embargo, puedes descubrir las tablas de cualquier esquema en la base de datos.

      En el símbolo del sistema, ingresa el siguiente comando:

      curl -X POST -d "{\"connection_profile_name\":\"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]\", \"oracle_rdbms\":{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
      
    4. Verifica que Datastream recupere todas las tablas del esquema que especificaste (para este instructivo, el esquema ROOT).

Ahora que creaste y administraste perfiles de conexión para una base de datos de origen de Oracle y un bucket de destino en Cloud Storage, estás listo para crear y administrar una transmisión en Datastream.

Crear y administrar una transmisión

En esta sección, crearás y administrarás una transmisión. Datastream usa esta transmisión para transferir datos, esquemas y tablas desde la base de datos de origen a una carpeta en el bucket de Cloud Storage de destino.

La creación y administración de una transmisión incluye lo siguiente:

  • Crear una transmisión con las siguientes listas:
    • Una lista de permisos. En esta lista, se especifican las tablas y esquemas de la base de datos de origen que Datastream puede transferir a una carpeta en el bucket de destino en Cloud Storage. En este instructivo, esta es la carpeta /root/tutorial.
    • Una lista de rechazo. En esta lista, se especifican las tablas y esquemas de la base de datos de origen que Datastream no puede transferir a la carpeta en el bucket de destino de Cloud Storage.
  • Recupera información detallada y de alto nivel sobre la transmisión
  • Modificar la transmisión
  • Usar la API de recuperación de errores para detectar cualquier error asociado con la transmisión
  • Iniciar la transmisión para que Datastream pueda transferir datos, esquemas y tablas desde la base de datos de origen hacia una carpeta en el bucket de Cloud Storage de destino.
  • Pausar la transmisión. Cuando se pausa una transmisión, Datastream no extraerá datos nuevos de la base de datos de origen al bucket de destino.
  • Reanuda la transmisión en pausa para que Datastream pueda continuar transfierendo datos al bucket de destino.

Crea una transmisión

En esta sección, crearás una transmisión de la base de datos de Oracle de origen a una carpeta en el bucket de Cloud Storage de destino. La transmisión que crees incluirá una lista de permisos y una lista de rechazos.

  1. Establece una variable SCHEMAS. Esta variable define los esquemas que contienen los datos y las tablas que deseas que Datastream recupere de la base de datos de origen y transfiera a la carpeta /root/tutorial del bucket de Cloud Storage de destino. En este instructivo, configurarás la variable SCHEMAS para que se asocie con el esquema ROOT.

    En el símbolo del sistema, ingresa el siguiente comando:

    SCHEMAS="{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}"
    
  2. En el mensaje, ingresa el comando echo $SCHEMAS | jq para ver el esquema ROOT que definiste para esta variable en texto fácil de leer.

  3. Crear una transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    STREAM="{\"display_name\":\"[DISPLAY_NAME]\",\"source_config\":{\"source_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",\"oracle_source_config\":{\"allowlist\":$SCHEMAS,\"rejectlist\":{}}},\"destination_config\":{\"destination_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]\",\"gcs_destination_config\":{\"file_rotation_mb\":5,\"file_rotation_interval\":{\"seconds\":15},\"gcs_file_format\":\"AVRO\"}}}"
    
  4. En el mensaje, ingresa el comando echo $STREAM | jq para ver la transmisión que creaste en texto fácil de leer.

    {
      "display_name": "[DISPLAY_NAME]",
      "source_config": {
        "source_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracle_source_config": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destination_config": {
        "destination_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcs_destination_config": {
          "file_rotation_mb": 5,
          "file_rotation_interval": {
            "seconds": 15
          },
          "gcs_file_format": "AVRO"
        }
      }
    }
    

    Usa esta tabla para comprender los siguientes parámetros de la transmisión:

    ParámetroDescripción
    allowlistLos esquemas, que contienen tablas y datos, que se transferirán desde la base de datos de origen a una carpeta del bucket de destino de Cloud Storage. Para este instructivo, todas las tablas y datos del esquema ROOT (y solo este esquema) se transferirán a la carpeta /root/tutorial del bucket de destino.
    rejectlistCualquier esquema, que contenga tablas y datos, que no se transferirán a una carpeta del bucket de destino de Cloud Storage En este instructivo, el valor {} significa que no se impedirá la transferencia de tablas y datos de la base de datos de origen al bucket de destino.
    file_rotation_mbEl tamaño máximo (en MBytes) de archivos que contienen datos, tablas y esquemas que se puede transferir desde la base de datos de origen a una carpeta en el bucket de destino de Cloud Storage. Para este instructivo, el tamaño máximo del archivo es de 5 MBytes. Si se excede algún tamaño, se dividirán en varios archivos de 5 MB.
    file_rotation_intervalCantidad de segundos que deben transcurrir antes de que Datastream reemplace un archivo existente en una carpeta del bucket de destino de Cloud Storage por un archivo más nuevo transferido desde la base de datos de origen. Para este instructivo, el intervalo de rotación de archivos se establece en 15 segundos.
    gcs_file_formatEl formato de los archivos que Datastream transferirá de la base de datos de origen a una carpeta del bucket de destino de Cloud Storage. Para este instructivo, Avro (AVRO) es el formato de archivo.
  5. Envía la transmisión para que se pueda crear. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams?stream_id=[STREAM_ID]
    
  6. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  7. Confirma que se creó la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  8. Verifica que recibas un resultado que se muestre para la transmisión que creaste.

    {
      "streams": [
        {
          "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "sourceConfig": {
            "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
            "oracleSourceConfig": {
              "allowlist": {
                "oracleSchemas": [
                  {
                    "schemaName": "ROOT"
                  }
                ]
              },
              "rejectlist": {}
            }
          },
          "destinationConfig": {
            "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
            "gcsDestinationConfig": {
              "gcsFileFormat": "AVRO",
              "fileRotationMb": 5,
              "fileRotationInterval": "15s"
            }
          },
          "state": "CREATED"
        }
      ]
    }
    

Administrar la transmisión

En esta sección, administrarás la transmisión que creaste para transferir datos de una base de datos de Oracle de origen a una carpeta en un bucket de destino de Cloud Storage. Incluye lo siguiente:

  • Recupera información detallada y de alto nivel sobre la transmisión
  • Modificar la transmisión
  • Usar la API de recuperación de errores para detectar cualquier error asociado con la transmisión
  • Iniciar, pausar y reanudar la transmisión
  1. Recupera información de alto nivel sobre la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  2. Verifica que veas información de alto nivel sobre esta transmisión.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
         }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    
  3. Recupera información detallada sobre esta transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  4. Verifica que veas información detallada sobre la transmisión.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  5. Modifica esta transmisión. Para ello, primero configura una variable UPDATE. Esta variable contiene los valores de la transmisión que deseas cambiar. Para este instructivo, cambia el tamaño máximo de los archivos que se pueden transferir de la base de datos de origen a una carpeta en el bucket de destino de Cloud Storage (de 5 MBytes a 100 MBytes).

    Para configurar la variable, en el mensaje, ingresa el siguiente comando:

    UPDATE="{\"destination_config\":{\"gcs_destination_config\":{\"file_rotation_mb\":100}}}"
    
  6. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]/?update_mask=destination_config.gcs_destination_config.file_rotation_mb
    
  7. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Confirma que se haya modificado la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  9. Verifica que el valor del parámetro fileRotationMb para el perfil de conexión de Cloud Storage ahora sea 100.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 100,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  10. Usa la API de recuperación de errores para recuperar cualquier error asociado con la transmisión.

    1. En el símbolo del sistema, ingresa el siguiente comando:

      curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:fetchErrors
        

    2. Verifica que veas las siguientes líneas de código:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": false
        }
        

    3. En el símbolo del sistema, ingresa el siguiente comando:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]
        

    4. Verifica que veas las siguientes líneas de código:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "endTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].FetchErrorsResponse"
          }
        }
        

  11. Inicia la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:start
    
  12. Verifica que veas las siguientes líneas de código.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  13. Después de unos segundos, recupera información sobre la transmisión para confirmar que se inició.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  14. Verifica que el estado de la transmisión haya cambiado de CREATED a RUNNING.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    
  15. Pausa la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:pause
    
  16. Verifica que veas las siguientes líneas de código.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  17. Recupera información sobre la transmisión para confirmar que está pausada.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  18. Verifica que el estado de la transmisión haya cambiado de RUNNING a PAUSED.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "PAUSED"
    }
    
  19. Reanuda la transmisión pausada. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:resume
    
  20. Verifica que veas las siguientes líneas de código.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  21. Recupera información sobre la transmisión para confirmar que se está ejecutando de nuevo.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  22. Verifica que el estado de la transmisión haya cambiado de PAUSED a RUNNING.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    

Ahora que creó y administró una transmisión, confirmó que no hay errores asociados y que el estado de la transmisión es RUNNING, está listo para verificar que pueda transferir datos de la base de datos de origen a una en el bucket de destino de Cloud Storage.

Verifica la transmisión

En esta sección, confirmarás que Datastream:

  • Transfiere los datos y las tablas asociadas con el esquema ROOT de tu base de datos Oracle de origen a la carpeta /root/tutorial en el bucket de destino de Cloud Storage.
  • Traduce los datos al formato de archivo Avro.
  1. Ve a la página Navegador de Storage en Cloud Storage.

    Ir a la página Navegador de Storage

  2. Haz clic en el vínculo que contiene tu bucket.

  3. Si la pestaña OBJETOS no está activa, haz clic en ella.

  4. Haz clic en la carpeta root y, luego, en la carpeta tutorial.

  5. Verifica que veas carpetas que representen tablas del esquema ROOT de tu base de datos de Oracle de origen.

  6. Haz clic en una de las carpetas de la tabla y, luego, desglosa hasta que veas datos asociados a la tabla.

  7. Haz clic en un archivo que represente los datos y, luego, haz clic en DESCARGAR.

  8. Abre este archivo en una herramienta Avro (por ejemplo, Visualizador de Avro) para asegurarte de que el contenido sea legible. Esto confirma que DataStream también tradujo los datos al formato de archivo Avro.

Limpia

Cuando termines con el instructivo, puedes limpiar los recursos que creaste en Datastream para que no consuman la cuota ni se te facture por ellos en el futuro. En las secciones siguientes, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

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

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra el bucket de destino de Cloud Storage

  1. En el panel lateral de navegación izquierdo de Cloud Storage, haz clic en el elemento Navegador.

  2. Selecciona la casilla de verificación que se encuentra a la izquierda del bucket y haz clic en BORRAR.

  3. En la ventana ¿Borrar bucket?, ingresa el nombre del bucket en el campo de texto y haz clic en CONFIRMAR.

Borra la transmisión

  1. Asegúrate de que tu aplicación de Google Cloud Shell esté activa.

  2. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  3. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  4. Confirma que se haya borrado la transmisión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  5. Verifica que se muestre un valor {} nulo. Esto significa que ya no hay transmisiones en Datastream y la transmisión que creaste se borró.

Borra los perfiles de conexión

  1. Borra el perfil de conexión a la base de datos de Oracle de origen. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]
    
  2. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  3. Borra el perfil de conexión al bucket de destino en Cloud Storage. En el símbolo del sistema, ingresa el siguiente comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  4. Verifica que veas las siguientes líneas de código:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Confirma que se hayan borrado ambos perfiles de conexión. En el símbolo del sistema, ingresa el siguiente comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  6. Verifica que se muestre un valor {} nulo. Esto significa que ya no hay perfiles de conexión en Datastream y que los perfiles que creaste se borraron.

¿Qué sigue?

  • Obtén más información sobre Datastream.
  • Prueba otras funciones de Google Cloud. Consulta nuestros instructivos.