Athrun Data Intelligence


Las organizaciones utilizan cada vez más datos para tomar decisiones e impulsar la innovación. Sin retención, crear aplicaciones basadas en datos puede resultar un desafío. A menudo requiere que varios equipos trabajen juntos e integren diversas fuentes de datos, herramientas y servicios. Por ejemplo, la creación de una aplicación de marketing dirigida implica que ingenieros de datos, científicos de datos y analistas de negocios utilicen diferentes sistemas y herramientas. Esta complejidad genera varios problemas: se necesita tiempo para memorizar múltiples sistemas, es difícil establecer datos y códigos en diferentes servicios y controlar el golpe de los usuarios en varios sistemas es complicado. Actualmente, las organizaciones suelen crear soluciones personalizadas para conectar estos sistemas, pero quieren un enfoque más unificado que les permita designar las mejores herramientas y al mismo tiempo ofrecer una experiencia optimizada para sus equipos de datos. El uso de lagos y almacenes de datos separados ha creado silos de datos, lo que genera problemas como la desliz de interoperabilidad, esfuerzos de gobernanza duplicados, arquitecturas complejas y un tiempo de producción de valencia más cachazudo.

puedes usar Casa del alberca Amazon SageMaker para ganar un golpe unificado a los datos tanto en los almacenes de datos como en los lagos de datos. A través de SageMaker Lakehouse, puede utilizar los motores de observación, formación automotriz e inteligencia empresarial preferidos a través de una API REST abierta de Apache Iceberg para ayudar a avalar el golpe seguro a los datos con controles de golpe consistentes y detallados.

Descripción común de la decisión

Consideremos a Ejemplo Retail Corp, que se enfrenta a una creciente pérdida de clientes. Su dirección quiere implementar un enfoque basado en datos para identificar clientes en peligro y desarrollar estrategias de retención específicas. Sin retención, los datos de los clientes están dispersos en diferentes sistemas y servicios, lo que dificulta la realización de observación exhaustivos. Hoy en día, Ejemplo Retail Corp gestiona los datos de ventas en su almacén de datos y los datos de los clientes en tablas Apache Iceberg en Servicio de almacenamiento simple de Amazon (Amazon S3). se utiliza Amazon EMR sin servidor para procesamiento de datos y formación automotriz. Para la gobernanza, utiliza Catálogo de datos de AWS Glue como catálogo técnico central y Formación del alberca AWS como almacén de permisos para aplicar controles de golpe detallados. Su principal objetivo es implementar un sistema de diligencia de datos unificado que ahora combine datos de diversas fuentes, permita el golpe seguro en toda la empresa y permita a equipos dispares utilizar herramientas preferidas para predecir, analizar y consumir información sobre la pérdida de clientes.

Examinemos cómo Ejemplo Retail Corp puede utilizar SageMaker Lakehouse para ganar su visión de diligencia de datos unificada utilizando este diagrama de cimentación de remisión.

Personas

Hay cuatro personas utilizadas en esta decisión.

  • El administrador de Data Lake tiene una Papeleo de golpe e identidad de AWS (IAM) rol de administrador y es un administrador de Lake Formation responsable de establecer los permisos de legatario para catalogar objetos utilizando Lake Formation.
  • El administrador del almacén de datos tiene una función de administrador de IAM y administra bases de datos en Amazon Redshift.
  • El ingeniero de datos tiene una función de ETL de IAM y ejecuta la canalización de cuna, transformación y carga (ETL) utilizando Spark para completar el catálogo de Lakehouse en RMS.
  • El analista de datos tiene una función de analista de IAM y realiza observación de deserción de los datos de SageMaker Lakehouse utilizando Atenea amazónica y Desplazamiento al rojo del Amazonas.

Conjunto de datos

La futuro tabla describe los medios del conjunto de datos.

Esquema Mesa fuente de datos
public customer_churn Catálogo Lakehouse con almacenamiento en RMS
customerdb customer Catálogo Lakehouse con almacenamiento en Amazon S3
sales store_sales almacén de datos

Requisitos previos

Para seguir el tutorial de la decisión, debe tener lo futuro:

  1. Cree un rol de IAM definido por el legatario siguiendo las instrucciones en Requisitos para los roles utilizados para registrar ubicaciones. Para esta publicación, usaremos la función IAM. LakeFormationRegistrationRole.
  2. Un Cúmulo privada posible de Amazon (Amazon VPC) con subredes públicas y privadas.
  3. Cree un depósito S3. Para esta publicación usaremos customer_data como nombre del depósito.
  4. Crear un Punto final sin servidor de Amazon Redshift llamado sales_dw cual será el hospedador store_sales conjunto de datos.
  5. Crear un Punto final sin servidor de Amazon Redshift llamado sales_analysis_dw para observación de deserción por parte de analistas de ventas.
  6. Cree un rol de IAM llamado DataTransferRole siguiendo las instrucciones en Requisitos previos para establecer espacios de nombres de Amazon Redshift en el catálogo de datos de AWS Glue.
  7. Instale o actualice la última traducción del CLI de AWS. Para obtener instrucciones, consulte Instalación o modernización a la última traducción de AWS CLI.
  8. Cree un administrador de alberca de datos siguiendo las instrucciones de Crear un administrador del alberca de datos. Para esta publicación, usaremos una señal de rol de IAMadministrador.

Configurar administradores de Datalake:

Inicie sesión en la Consola de despacho de AWS como administrador y vaya a AWS Lake Formation. En el panel de navegación, elija Roles de despacho y luego designar Tareas bajo Distribución. Bajo Administradores del alberca de datosdesignar Juntar:

  1. En el Juntar administradores página, debajo Tipo de golpedesignar Administrador del alberca de datos.
  2. Bajo Usuarios y roles de IAMseparar Distribución. Designar Confirmar.
  3. en el Juntar administradores página, para Tipo de golpe separar Administradores de solo leída. Bajo Usuarios y roles de IAMseparar AWSServiceRoleForRedshift y elige Confirmar. Este paso permite a Amazon Redshift descubrir y lograr a objetos del catálogo en AWS Glue Data Catalog.

Tutorial de la decisión

Cree una tabla de clientes en el alberca de datos de Amazon S3 en AWS Glue Data Catalog

  1. Crear un Pegamento AWS pulvínulo de datos señal customerdb en el catálogo predeterminado de su cuenta yendo a la consola de AWS Lake Formation y eligiendo Bases de datos en el panel de navegación.
  2. Seleccione la pulvínulo de datos que acaba de crear y elija Editar.
  3. Borrar la casilla de comprobación Utilice solo control de golpe de IAM para tablas nuevas en esta pulvínulo de datos.
  4. Inicie sesión en la consola de Athena como administrador y seleccione el categoría de trabajo al que tiene golpe el rol. Ejecute el futuro SQL:
    CREATE EXTERNAL TABLE `tempcustomer`(
      `c_salutation` string, 
      `c_preferred_cust_flag` string, 
      `c_first_sales_date_sk` int, 
      `c_customer_sk` int, 
      `c_login` string, 
      `c_current_cdemo_sk` int, 
      `c_first_name` string, 
      `c_current_hdemo_sk` int, 
      `c_current_addr_sk` int, 
      `c_last_name` string, 
      `c_customer_id` string, 
      `c_last_review_date_sk` int, 
      `c_birth_month` int, 
      `c_birth_country` string, 
      `c_birth_year` int, 
      `c_birth_day` int, 
      `c_first_shipto_date_sk` int, 
      `c_email_address` string)
    ROW FORMAT SERDE 
      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    STORED AS INPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
    OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
    LOCATION
      's3://customer_data/tempcustomer'
    
    INSERT INTO customer
    VALUES('Dr.','N',2452077,13251813,'Y',1381546,'Joyce',2645,2255449,'Deaton','AAAAAAAAFOEDKMAA',2452543,1,'GREECE',1987,29,2250667,'[email protected]'),
    ('Dr.','N',2450637,12755125,'Y',1581546,'Daniel',9745,4922716,'Dow','AAAAAAAAFLAKCMAA',2432545,1,'INDIA',1952,3,2450667,'[email protected]'),
    ('Dr.','N',2452342,26009249,'Y',1581536,'Marie',8734,1331639,'Lange','AAAAAAAABKONMIBA',2455549,1,'CANADA',1934,5,2472372,'[email protected]'),
    ('Dr.','N',2452342,3270685,'Y',1827661,'Wesley',1548,11108235,'Harris','AAAAAAAANBIOBDAA',2452548,1,'ROME',1986,13,2450667,'[email protected]'),
    ('Dr.','N',2452342,29033279,'Y',1581536,'Alexandar',8262,8059919,'Salyer','AAAAAAAAPDDALLBA',2952543,1,'SWISS',1980,6,2650667,'[email protected]'),
    ('Miss','N',2452342,6520539,'Y',3581536,'Jerry',1874,36370,'Tracy','AAAAAAAALNOHDGAA',2452385,1,'ITALY',1957,8,2450667,'[email protected]')
    
    CREATE TABLE customer
    WITH (table_type="ICEBERG",
    format="PARQUET",
    location = 's3://customer_data/customer/',
    is_external = false
    ) as select * from tempcustomer;

  5. Registre el depósito S3 con Lake Formation:
    • Inicie sesión en la consola de Lake Formation como administrador de Data Lake.
    • En el panel de navegación, elija Distribucióny luego elija Ubicaciones del alberca de datos.
    • Designar Registrar ubicación.
    • Para el Ruta de Amazon S3ingresar s3://customer_data/.
    • Para el Rol de IAMdesignar LakeFormaciónRegistroRol.
    • Para Modo de permisoseparar Formación del alberca.
    • Designar Registrar ubicación.

Cree la pulvínulo de datos salesdb en Amazon Redshift

  1. Inicie sesión en el punto final de Redshift sales_dw como legatario administrador. Ejecute el futuro script para crear una pulvínulo de datos señal salesdb.
  2. Conéctate a salesdb. Ejecute el futuro script para crear un esquema. sales y el store_sales tabla y llenarla con datos.
    Create schema sales;
    CREATE TABLE sales.store_sales (
        sale_id INTEGER IDENTITY(1,1) PRIMARY KEY,
        customer_sk INTEGER NOT NULL,
        sale_date DATE NOT NULL,
        sale_amount DECIMAL(10, 2) NOT NULL,
        product_name VARCHAR(100) NOT NULL,
        last_purchase_date DATE
    );
    
    INSERT INTO sales.store_sales (customer_sk, sale_date, sale_amount, product_name, last_purchase_date)
    VALUES
        (13251813, '2023-01-15', 150.00, 'Widget A', '2023-01-15'),
        (29033279, '2023-01-20', 200.00, 'Gadget B', '2023-01-20'),
        (12755125, '2023-02-01', 75.50, 'Tool C', '2023-02-01'),
        (26009249, '2023-02-10', 300.00, 'Widget A', '2023-02-10'),
        (3270685, '2023-02-15', 125.00, 'Gadget B', '2023-02-15'),
        (6520539, '2023-03-01', 100.00, 'Tool C', '2023-03-01'),
        (10251183, '2023-03-10', 250.00, 'Widget A', '2023-03-10'),
        (10251283, '2023-03-15', 180.00, 'Gadget B', '2023-03-15'),
        (10251383, '2023-04-01', 90.00, 'Tool C', '2023-04-01'),
        (10251483, '2023-04-10', 220.00, 'Widget A', '2023-04-10'),
        (10251583, '2023-04-15', 175.00, 'Gadget B', '2023-04-15'),
        (10251683, '2023-05-01', 130.00, 'Tool C', '2023-05-01'),
        (10251783, '2023-05-10', 280.00, 'Widget A', '2023-05-10'),
        (10251883, '2023-05-15', 195.00, 'Gadget B', '2023-05-15'),
        (10251983, '2023-06-01', 110.00, 'Tool C', '2023-06-01'),
        (10251083, '2023-06-10', 270.00, 'Widget A', '2023-06-10'),
        (10252783, '2023-06-15', 185.00, 'Gadget B', '2023-06-15'),
        (10253783, '2023-07-01', 95.00, 'Tool C', '2023-07-01'),
        (10254783, '2023-07-10', 240.00, 'Widget A', '2023-07-10'),
        (10255783, '2023-07-15', 160.00, 'Gadget B', '2023-07-15');

Cree el catálogo RMS churn_lakehouse en Glue Data Catalog

Este catálogo contendrá la tabla de deserción de clientes con almacenamiento RMS administrado, que se completará mediante Amazon EMR.

Gestionaremos los datos de deserción de clientes en un catálogo administrado de AWS Glue con almacenamiento RMS administrado. Estos datos se producen a partir de un observación realizado en EMR Serverless y son accesibles en la capa de presentación para servir a aplicaciones de inteligencia empresarial (BI).

Crear catálogo Lakehouse (RMS)

  1. Inicie sesión en la consola de Lake Formation como administrador de Data Lake.
  2. En el panel de navegación izquierdo, elija Catálogo de datosy luego Catálogos Nuevo. Designar Crear catálogo.
  1. Proporcione los detalles del catálogo:
    • Nombre: Ingresar churn_lakehouse.
    • Tipo: Aspirar Catálogo ventilado.
    • Almacenamiento: Aspirar corrimiento al rojo.
    • Bajo Ataque desde motoresasegúrese de que Accede a este catálogo de motores compatibles con Iceberg está seleccionado.
    • Designar Próximo.
    • Bajo Directoresseparar Usuarios y roles de IAM. Bajo usuarios de IAM y roles, seleccione el Distribución Bajo Permisos de catálogoseparar superusuario.
    • Designar Juntary luego elija Crear catálogo.

Acceda al catálogo RMS churn_lakehouse desde el motor Amazon EMR Spark

  1. Configurar un estudio EMR.
  2. Cree una aplicación EMR Serverless mediante el comando CLI.
    aws emr-serverless create-application --region  
    --name 'Churn_Analysis' 
    --type 'SPARK' 
    --release-label emr-7.5.0 
    --network-configuration '{"subnetIds": ("", ""), "securityGroupIds": ()}'

Inicie sesión en EMR Studio y utilice el espacio de trabajo de EMR Studio

  1. Inicie sesión en la consola de EMR Studio y elija Espacios de trabajo en el panel de navegación y luego elija Crear espacio de trabajo.
  2. Ingrese un nombre y una descripción para el espacio de trabajo.
  3. Designar Crear espacio de trabajo. Se abrirá automáticamente una nueva pestaña que contiene JupyterLab cuando el espacio de trabajo esté despierto. Habilite las ventanas emergentes en su navegador si es necesario.
  4. Elija el icono Computar en el panel de navegación para adjuntar el espacio de trabajo de EMR Studio con un motor de computación.
  5. Aspirar Aplicación EMR sin servidor para Tipo de cálculo.
  6. Designar Churn_Analysis para Aplicación EMR-S.
  7. Para Rol de tiempo de ejecucióndesignar Distribución.
  8. Designar Adjuntar.

descargar el cuadernoimportarlo, designar Núcleo PySpark y ejecutar las celdas que crearán la tabla.

Administre el golpe detallado de sus usuarios a los objetos del catálogo mediante AWS Lake Formation

Otorgue los siguientes permisos al rol de Analista en los fortuna como se muestra en la futuro tabla.

Catalogar Pulvínulo de datos Mesa Permiso
:churn_lakehouse/dev public customer_churn Permiso de columna:
customerdb customer permiso de mesa
:sales_lakehouse/salesdb sales store_sales Permiso de toda la mesa.
  1. Inicie sesión en la consola de Lake Formation como administrador de Data Lake. En el panel de navegación, elija Permisos del alberca de datosy luego elija Conceder.
  2. Para Usuarios y roles de IAMdesignar Rol de analista de IAM. Para obtener fortuna, elija como se muestra a continuación y otorgue.
  3. Para Usuarios y roles de IAMdesignar Rol de analista de IAM. Para el procedimiento, elija como se muestra a continuación y concédalo.
  4. Para Usuarios y roles de IAMdesignar Rol de analista de IAM. Para el procedimiento, elija como se muestra a continuación y concédalo.

Realice observación de deserción utilizando múltiples motores:

Usando Atenas

Inicie sesión en la consola de Athena utilizando el rol de Analista de IAM, seleccione el categoría de trabajo al que tiene golpe el rol. Ejecute el futuro SQL combinando datos del almacén de datos y el catálogo de Lake House RMS para el observación de deserción:

SELECT 
c.c_customer_id,
c.c_first_name,
c.c_last_name,
c.c_email_address,
ss.sale_amount,
cc.is_churned
FROM 
    "customerdb"."customer" c
LEFT JOIN 
    "sales_lakehouse/salesdb"."sales"."store_sales" ss ON c.c_customer_sk = ss.customer_sk
LEFT JOIN 
    "churn_lakehouse/dev"."public"."customer_churn" cc ON c.c_customer_sk  = cc.customer_id
WHERE cc.is_churned = true
;

La futuro figura muestra los resultados, que incluyen ID de clientes, nombres y otra información.

Usando Amazon Redshift

Inicie sesión en el clúster QEV2 de Redshift Sale utilizando el rol de analista de IAM. Inicie sesión con credenciales temporales utilizando su identidad de IAM y ejecute el futuro comando SQL:

SELECT 
c.c_customer_id,
c.c_first_name,
c.c_last_name,
c.c_email_address,
ss.sale_amount,
cc.is_churned
FROM 
   "awsdatacatalog"."customerdb"."customer" c
LEFT JOIN 
    "salesdb@sales_lakehouse"."sales"."store_sales" ss ON c.c_customer_sk = ss.customer_sk
LEFT JOIN 
    "dev@churn_lakehouse"."public"."customer_churn" cc ON c.c_customer_sk  = cc.customer_id
WHERE cc.is_churned = true
;

La futuro figura muestra los resultados, que incluyen ID de clientes, nombres y otra información.

Erradicar

Complete los siguientes pasos para eliminar los fortuna que creó y evitar costos inesperados:

  1. Borrarlos grupos de trabajo Redshift Serverless.
  2. Borrarel espacio de nombres asociado de Redshift Serverless.
  3. Elimine EMR Studio y la aplicación creada.
  4. Elimine los fortuna de Glue y los permisos de Lake Formation.
  5. Vacíe el depósito y elimínelo.

Conclusión

En esta publicación, mostramos cómo puede utilizar Amazon SageMaker Lakehouse para ganar golpe unificado a los datos en sus almacenes y lagos de datos. Con golpe unificado, puede utilizar los motores de observación, formación automotriz e inteligencia empresarial preferidos a través de una API REST abierta de Apache Iceberg y golpe seguro a los datos con controles de golpe consistentes y detallados. Pruebe Amazon SageMaker Lakehouse en su entorno y comparta sus comentarios con nosotros.


Acerca de los autores

Srividya Parthasarathy es arquitecto sénior de Big Data en el equipo de AWS Lake Formation. Trabaja con el equipo de producto y el cliente para crear funciones y soluciones sólidas para su plataforma de datos analíticos. Le gusta crear soluciones de malla de datos y compartirlas con la comunidad.

Harshida Patel es un arquitecto de soluciones principal entendido en observación de AWS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *