Inicio rápido: consulta datos en Amazon S3 - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Inicio rápido: consulta datos en Amazon S3

Los usuarios pueden analizar los datos almacenados en Amazon S3 ejecutando consultas SQL desde JupyterLab cuadernos mediante la extensión SQL. La extensión se integra con Athena, lo que permite la funcionalidad de datos en Amazon S3 con unos pocos pasos adicionales.

En esta sección, se explican los pasos para cargar datos de Amazon S3 en Athena y, a continuación, consultarlos JupyterLab mediante la extensión SQL. Creará una fuente de datos y un AWS Glue rastreador de Athena para indexar sus datos de Amazon S3, configurará los permisos de IAM adecuados para permitir el acceso JupyterLab a Athena y se conectará a Athena para consultar los JupyterLab datos. Siguiendo estos pocos pasos, podrá analizar los datos de Amazon S3 utilizando la extensión SQL en los JupyterLab cuadernos.

Requisitos previos
  • Inicie sesión en la consola AWS de administración con una cuenta de usuario AWS Identity and Access Management (IAM) con permisos de administrador. Para obtener información sobre cómo registrar una AWS cuenta y crear un usuario con acceso administrativo, consulte SageMaker Requisitos previos de Amazon.

  • Tenga un SageMaker dominio y un perfil de usuario para acceder a SageMaker Studio. Para obtener información sobre cómo configurar un SageMaker entorno, consulteConfiguración rápida en Amazon SageMaker.

  • Tenga un depósito y una carpeta de Amazon S3 para almacenar los resultados de las consultas de Athena, utilizando la misma AWS región y cuenta que su SageMaker entorno. Para obtener información sobre cómo crear un bucket en Amazon S3, consulte Creación de un bucket en la documentación de Amazon S3. Configurará este depósito y esta carpeta para que sean la ubicación de salida de la consulta.

Paso 1: Configure una fuente de datos y un AWS Glue rastreador de Athena para sus datos de Amazon S3

Siga estos pasos para indexar sus datos en Amazon S3 y crear tablas en Athena.

nota

Para evitar colisiones entre los nombres de las tablas de diferentes ubicaciones de Amazon S3, cree una fuente de datos y un rastreador independientes para cada ubicación. Cada fuente de datos crea una tabla con el nombre de la carpeta que la contiene, a menos que tenga un prefijo.

  1. Configure una ubicación de resultados de consulta

    1. Vaya a la consola de Athena: https://console.aws.amazon.com/athena/.

    2. En el menú de la izquierda, selecciona Grupos de trabajo.

    3. Siga el enlace del primary grupo de trabajo y seleccione Editar.

    4. En la sección Configuración de resultados de consultas, introduzca la ruta de Amazon S3 del directorio de salida y, a continuación, seleccione Guardar cambios.

  2. Cree una fuente de datos de Athena para sus datos de Amazon S3

    1. En el menú de la izquierda de la consola de Athena, selecciona Fuentes de datos y, a continuación, Crear fuente de datos.

    2. Seleccione S3 - Catálogo de AWS Glue datos y, a continuación, Siguiente.

    3. Deje el catálogo de AWS Glue datos predeterminado en esta cuenta, elija Crear un rastreador en AWS Glue y, a continuación, Crear en AWS Glue. Esto abre la AWS Glue consola.

  3. Se usa AWS Glue para rastrear la fuente de datos

    1. Introduzca un nombre y una descripción para el nuevo rastreador y, a continuación, seleccione Siguiente.

    2. En Fuentes de datos, selecciona Añadir una fuente de datos.

      1. Si el depósito de Amazon S3 que contiene sus datos se encuentra en una AWS cuenta diferente a la de su SageMaker entorno, seleccione En una cuenta diferente para la ubicación de los datos de S3.

      2. Introduzca la ruta al conjunto de datos en Amazon S3. Por ejemplo:

        s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/
      3. Mantenga todos los demás valores predeterminados y, a continuación, seleccione Añadir una fuente de datos de Amazon S3. Debería ver una nueva fuente de datos de Amazon S3 en la tabla de fuentes de datos.

      4. Elija Siguiente.

    3. Configure la función de IAM para que el rastreador acceda a sus datos.

      nota

      El alcance de cada rol se reduce a la fuente de datos que especifique. Al reutilizar un rol, edite la política de JSON para añadir cualquier recurso nuevo al que desee conceder acceso o cree un nuevo rol para esta fuente de datos.

      1. Seleccione Crear un nuevo rol de IAM.

      2. Introduzca un nombre para el rol y, a continuación, seleccione Siguiente.

  4. Cree o seleccione una base de datos para sus tablas

    1. Si no tiene una base de datos existente en Athena, elija Agregar base de datos y, a continuación, Crear una nueva base de datos.

    2. Para volver a la pestaña de creación de rastreadores anterior, en Configuración de salida, pulse el botón Actualizar. Ahora debería ver la base de datos recién creada en la lista.

    3. Seleccione su base de datos, añada un prefijo opcional en el prefijo del nombre de la tabla y, a continuación, seleccione Siguiente.

      nota

      En el ejemplo anterior, en el que se encuentran los datoss3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/, al añadir el prefijo taxi-ride- se creará una tabla con el nombre. taxi-ride-year_2019 Añadir un prefijo ayuda a evitar colisiones de nombres de tablas cuando varias ubicaciones de datos tienen carpetas con nombres idénticos.

  5. Seleccione Crear rastreador.

  6. Ejecute el rastreador para indexar los datos. Espera a que el rastreador alcance un Completed estado determinado, lo que puede tardar unos minutos.

Para asegurarte de que se ha creado una tabla nueva, ve al menú de la izquierda AWS Glue y selecciona Bases de datos y luego Tablas. Ahora debería ver una nueva tabla con sus datos.

Paso 2: Otorga a Studio los permisos para acceder a Athena

En los siguientes pasos, concedes al rol de ejecución de tu perfil de usuario permisos para acceder a Athena.

  1. Recupera el ARN del rol de ejecución asociado a tu perfil de usuario

    1. Vaya a la SageMaker consola en https://console.aws.amazon.com/sagemaker/ y elija Dominios en el menú de la izquierda.

    2. Sigue el nombre de tu nombre de dominio.

    3. En la lista de perfiles de usuario, sigue el nombre de tu perfil de usuario.

    4. En la página de detalles del usuario, copie el ARN del rol de ejecución.

  2. Actualice la política de su función de ejecución

    1. Busca tu AWS región y tu ID de cuenta en la parte superior derecha de la SageMaker consola. Usa estos valores y el nombre de tu base de datos para actualizar los marcadores de posición de la siguiente política de JSON en un editor de texto.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "GetS3AndDataSourcesMetadata", "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetSchema", "glue:GetTables", "s3:ListBucket", "s3:GetObject", "s3:GetBucketLocation", "glue:GetDatabase", "glue:GetTable", "glue:ListSchemas", "glue:GetPartitions" ], "Resource": [ "arn:aws:s3:::*", "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/db-name" ] }, { "Sid": "ExecuteAthenaQueries", "Effect": "Allow", "Action": [ "athena:ListDataCatalogs", "athena:ListDatabases", "athena:ListTableMetadata", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:RunQuery", "athena:StartSession", "athena:GetQueryResults", "athena:ListWorkGroups", "s3:ListMultipartUploadParts", "s3:ListBucket", "s3:GetBucketLocation", "athena:GetDataCatalog", "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject", "athena:GetWorkGroup" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "GetGlueConnectionsAndSecrets", "Effect": "Allow", "Action": [ "glue:GetConnections", "glue:GetConnection" ], "Resource": [ "*" ] } ] }
    2. Ve a la consola de IAM: https://console.aws.amazon.com/iam/ y selecciona Roles en el menú de la izquierda.

    3. Busque su función por el nombre de la función.

      nota

      Puede recuperar el nombre de una función de ejecución a partir de su nombre de recurso de Amazon (ARN) dividiendo el ARN '/' y tomando el último elemento. Por ejemplo, en el siguiente ejemplo de un ARNarn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole, el nombre de la función de ejecución es. SageMakerStudio-SQLExtension-ExecutionRole

    4. Siga el enlace correspondiente a su función.

    5. En la pestaña Permisos, selecciona Añadir permisos y, a continuación, Crear política integrada.

    6. Elija el JSON formato en la sección del editor de políticas.

    7. Copie la política anterior y, a continuación, seleccione Siguiente. Asegúrese de haber reemplazado todos los account-idregion-name, y db-name por sus valores.

    8. Introduzca un nombre para la política y, a continuación, elija Crear política.

Paso 3: Habilita la conexión predeterminada de Athena en JupyterLab

En los siguientes pasos, habilita una default-athena-connection en su JupyterLab aplicación. La conexión Athena predeterminada permite ejecutar consultas SQL en Athena directamente desde JupyterLab, sin necesidad de crear una conexión manualmente.

Para habilitar la conexión Athena predeterminada

  1. Ve a la SageMaker consola en https://console.aws.amazon.com/sagemaker/ y selecciona Studio en el menú de la izquierda. Abre Studio con tu dominio y perfil de usuario.

  2. Elige la JupyterLab aplicación.

  3. Si no ha creado un espacio para JupyterLab la aplicación, elija Crear un JupyterLab espacio. Introduzca un nombre para el espacio, manténgalo como privado y, a continuación, elija Crear espacio. Administra tu espacio con la última versión de la imagen de SageMaker distribución.

    De lo contrario, selecciona Ejecutar espacio en tu espacio para iniciar una JupyterLab aplicación.

  4. Habilite la conexión predeterminada de Athena:

    1. En su JupyterLab aplicación, vaya al menú de ajustes de la barra de navegación superior y abra el menú del editor de ajustes.

    2. Elija Descubrimiento de datos.

    3. Marque la casilla Habilitar la conexión Athena predeterminada.

    4. En su JupyterLab aplicación, elija el SQL extension icon. icono del panel de navegación izquierdo para abrir la extensión SQL.

    5. Pulse el botón Actualizar situado en la parte inferior del panel de detección de datos. Deberías ver un default-athena-connection en la lista de conexiones.

Paso 4: Consulte datos en Amazon S3 desde JupyterLab cuadernos mediante la extensión SQL

Ya está preparado para consultar sus datos con SQL en sus JupyterLab cuadernos.

  1. Abra la conexión default-athena-connection y, a continuación AWS DataCatalog.

  2. Navegue hasta su base de datos y elija el icono de tres puntos ( SQL extension three dots icon. ) situado a la derecha. Seleccione Consulta en el bloc de notas.

    Esto rellena automáticamente una celda del cuaderno JupyterLab con el comando %%sm_sql mágico correspondiente para conectarse a la fuente de datos. También añade un ejemplo de sentencia SQL para ayudarle a empezar a realizar consultas de forma inmediata.

    nota

    Asegúrese de cargar la extensión en la celda superior antes de ejecutar una consulta SQL.

    Puede refinar aún más la consulta SQL mediante las funciones de autocompletar y resaltar de la extensión. Consulte Características del editor SQL de la extensión JupyterLab SQL para obtener más información sobre el uso del editor SQL de la extensión SQL.