

# Conexión a Mixpanel
<a name="connecting-to-mixpanel"></a>

Mixpanel es una potente plataforma de análisis en tiempo real que ayuda a las empresas a medir y optimizar la interacción con los usuarios. Mixpanel es una aplicación que se utiliza para realizar un seguimiento del comportamiento de los clientes. Permite realizar un seguimiento de cómo los usuarios interactúan con el producto, así como analizar estos datos a través de informes interactivos con los que se pueden consultar y visualizar los resultados con tan solo unos clics. Como usuario de Mixpanel, puede conectar AWS Glue a la cuenta de Mixpanel. A continuación, puede utilizar Mixpanel como origen de datos en los trabajos de ETL. Ejecute estos trabajos para transferir datos entre Mixpanel y los servicios de AWS u otras aplicaciones compatibles.

**Topics**
+ [Compatibilidad de AWS Glue con Mixpanel](Mixpanel-support.md)
+ [Políticas que contienen las operaciones de la API para crear y usar conexiones](mixpanel-configuring-iam-permissions.md)
+ [Configuración de Mixpanel](mixpanel-configuring.md)
+ [Configuración de las conexiones a Mixpanel](mixpanel-configuring-connections.md)
+ [Cómo leer de entidades de Mixpanel](mixpanel-reading-from-entities.md)
+ [Opciones de conexión a Mixpanel](mixpanel-connection-options.md)
+ [Creación de una cuenta de Mixpanel y configuración de la aplicación cliente](mixpanel-create-account.md)
+ [Limitaciones](mixpanel-connector-limitations.md)

# Compatibilidad de AWS Glue con Mixpanel
<a name="Mixpanel-support"></a>

AWS Glue admite Mixpanel de la siguiente manera:

**¿Es compatible como origen?**  
Sí. Puede usar los trabajos de ETL de AWS Glue para consultar datos de Mixpanel.

**¿Es compatible como destino?**  
No.

**Versiones de la API de Mixpanel compatibles**  
 2.0 

# Políticas que contienen las operaciones de la API para crear y usar conexiones
<a name="mixpanel-configuring-iam-permissions"></a>

 En el siguiente ejemplo de política se describen los permisos de AWS necesarios para crear y utilizar conexiones. Si va a crear un nuevo rol, cree una política que contenga lo siguiente: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Si no desea utilizar el método anterior, como alternativa, utilice las siguientes políticas de IAM administradas:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): concede acceso a los recursos que necesitan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tienen los permisos necesarios. Normalmente, esta política se asocia a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de conexión de desarrollo. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acceso total a los recursos de AWS Glue cuando una identidad a la que está asociada la política utiliza la consola de administración de AWS. Si sigue la convención de nomenclatura para los recursos especificados en esta política, los usuarios dispondrán de todas las funciones de la consola. Esta política se suele adjuntar a los usuarios de la consola AWS Glue. 

# Configuración de Mixpanel
<a name="mixpanel-configuring"></a>

Antes de poder utilizar AWS Glue para transferir datos hacia o desde Mixpanel, deberá cumplir estos requisitos:

## Requisitos mínimos
<a name="mixpanel-configuring-min-requirements"></a>
+  Tener una cuenta de Mixpanel. Para obtener más información sobre cómo crear una cuenta, consulte [Creación de una cuenta de Mixpanel](mixpanel-create-account.md). 
+  La cuenta de Mixpanel debe estar habilitada para el acceso a la API. El acceso a la API está habilitado de forma predeterminada para las ediciones Enterprise, Unlimited, Developer y Performance. 

Si cumple estos requisitos, estará listo para conectar AWS Glue a la cuenta de Mixpanel. Para conexiones típicas, no necesita hacer nada más en Mixpanel.

# Configuración de las conexiones a Mixpanel
<a name="mixpanel-configuring-connections"></a>

Mixpanel admite nombre de usuario y contraseña para `BasicAuth`. La autenticación básica es un método de autenticación simple en el que los clientes proporcionan credenciales directamente para acceder a los recursos protegidos. AWS Glue puede utilizar el nombre de usuario y la contraseña para autenticar las API de Mixpanel. 

Para consultar la documentación pública de Mixpanel sobre el flujo `BasicAuth`, consulte [Cuentas de servicio de Mixpanel](https://developer.mixpanel.com/reference/service-accounts). 

Para configurar una conexión a Mixpanel:

1. En AWS Secrets Manager, cree un secreto con los siguientes detalles: 
   +  Para la autenticación básica, el secreto debe contener el secreto del consumidor de la aplicación conectada con `USERNAME` y `PASSWORD` como clave. 
**nota**  
Es imprescindible crear un secreto por conexión en AWS Glue.

1. En AWS Glue Studio, siga los pasos que se indican a continuación en **Conexiones de datos** para crear una conexión: 

   1. Al seleccionar un **Tipo de conexión**, elija **Mixpanel**.

   1. Proporcione la `INSTANCE_URL` de la instancia de Mixpanel a la que se quiere conectar.

   1. Seleccione el rol de IAM que AWS Glue pueda asumir y que tenga permisos para las siguientes acciones: 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Seleccione el `secretName` que desee usar para esta conexión en AWS Glue para colocar los tokens. 

   1.  Seleccione **Opciones de red** si quiere usar la red. 

1.  Conceda el rol de IAM asociado a su permiso de trabajo de AWS Glue para leer `secretName`. 

# Cómo leer de entidades de Mixpanel
<a name="mixpanel-reading-from-entities"></a>

 **Requisitos previos** 

Debe tener un objeto de Mixpanel, como `Funnels`, `Retention` o `Retention Funnels`, del que desee leer datos. Además, necesitará conocer el nombre del objeto.

 **Entidades compatibles** 


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite Partición | 
| --- | --- | --- | --- | --- | --- | 
| Embudos | Sí | No | No | Sí | No | 
| Retención | Sí | No | No | Sí | No | 
| Segmentación | Sí | No | No | Sí | No | 
| Suma de segmentación | Sí | No | No | Sí | No | 
| Promedio de segmentación | Sí | No | No | Sí | No | 
| Cohortes | Sí | No | No | Sí | No | 
| Uso de | No | Sí | No | Sí | No | 
| Events | Sí | No | No | Sí | No | 
| Eventos principales | Sí | No | No | Sí | No | 
| Nombres de eventos | Sí | No | No | Sí | No | 
| Propiedades de eventos | Sí | No | No | Sí | No | 
| Principales propiedades de eventos | Sí | No | No | Sí | No | 
| Valores de propiedades de eventos | Sí | No | No | Sí | No | 
| Anotaciones | Sí | No | No | Sí | No | 
| Actividad de evento de perfil | Sí | No | No | Sí | No | 

 **Ejemplo** 

```
mixpanel_read = glueContext.create_dynamic_frame.from_options(
    connection_type="mixpanel",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/cohorts/list?project_id=2603353",
        "API_VERSION": "2.0",
        "INSTANCE_URL": "https://www.mixpanel.com/api/app/me"
    }
```

 **Detalles de entidades y campos de Mixpanel** 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/mixpanel-reading-from-entities.html)

# Opciones de conexión a Mixpanel
<a name="mixpanel-connection-options"></a>

Las siguientes son opciones de conexión para Mixpanel:
+  `ENTITY_NAME`(cadena): (obligatorio) se utiliza para leer y escribir. El nombre del objeto en Mixpanel. 
+  `API_VERSION`(cadena): (obligatorio) se utiliza para leer y escribir. Versión de la API de Rest de Mixpanel que desea usar. Por ejemplo, v2.0. 
+  `SELECTED_FIELDS`(lista<Cadena>): predeterminado: vacío (SELECTO \$1). Se usa para leer. Columnas que desee seleccionar para el objeto. 
+  `FILTER_PREDICATE`(cadena): predeterminado: vacío. Se usa para leer. Debe estar en el formato de Spark SQL. 
+  `QUERY`(cadena): predeterminado: vacío. Se usa para leer. Consulta completa de Spark SQL. 

# Creación de una cuenta de Mixpanel y configuración de la aplicación cliente
<a name="mixpanel-create-account"></a>

**Creación de una cuenta de Mixpanel**

1. Vaya a la [Página de inicio de Mixpanel/](https://mixpanel.com/). 

1. En la página de inicio de **Mixpanel**, elija **Registrarse** en la esquina superior derecha de la página. 

1. En la página **Comencemos**, realice las siguientes acciones: 
   + Ingrese su dirección de correo electrónico en el campo designado.
   + Seleccione la casilla necesaria para aceptar las condiciones.
   + Elija **Comenzar** para continuar.

     Al finalizar con éxito, recibirá un correo electrónico de verificación. 

1. Revise su bandeja de entrada para encontrar un correo de verificación, ábralo y siga las instrucciones proporcionadas para confirmar su dirección de correo electrónico. 

1. En la página de verificación, elija **Verificar correo electrónico** para completar la verificación del correo electrónico. 

1. En la página **Asigne un nombre a la organización**, ingrese el nombre de la organización y elija **Siguiente**. 

1. En la página **Su primer proyecto**, ingrese los detalles del proyecto y seleccione **Crear**.

1. En la página siguiente, elija **Comencemos** para terminar de crear la cuenta. 

**Inicio de sesión en una cuenta de Mixpanel**

1. Vaya a la [Página de inicio de sesión de Mixpanel/](https://mixpanel.com/login/). 

1. Ingrese la dirección de correo electrónico y elija **Continuar**. 

1. Revise su bandeja de entrada para encontrar un correo de verificación, ábralo y siga las instrucciones proporcionadas para confirmar su dirección de correo electrónico. 

1. En la página siguiente, elija **el botón Iniciar sesión** para iniciar sesión en la cuenta. 

**Cómo adquirir un plan de Mixpanel**

1. En la página de Mixpanel, seleccione el icono **Configuración** que se encuentra en la esquina superior derecha de la página.

1. En la lista de opciones, seleccione **Detalles del plan y facturación**. 

1. En la página **Detalles del plan y facturación**, seleccione **Actualizar o Modificar**.

1. En la página siguiente, seleccione el plan que desee comprar.

   Con esto se completa el proceso de creación de la cuenta y de adquisición del plan.

**Creación de un nombre de usuario y un secreto de cliente (para registrar la aplicación)**

1. En la página de Mixpanel, seleccione el icono **Configuración** que se encuentra en la esquina superior derecha de la página. 

1. En la lista de opciones, seleccione **Configuración del proyecto**. 

1. En la página **Configuración del proyecto**, seleccione **Cuentas de servicio** y, a continuación, **Agregar cuenta de servicio**.

1. En la lista desplegable **Cuenta de servicio**, seleccione la **Cuenta de servicio o ingrese el nombre que desea crear**, agregue el **Rol del proyecto**, especifique los **vencimientos** y seleccione **Agregar**. 
**importante**  
Una vez completado el paso anterior, aparecerá la siguiente página con la clave secreta de la cuenta de servicio. Asegúrese de guardar la clave secreta de la cuenta de servicio. No podrá volver a acceder a esta después de este punto.

# Limitaciones
<a name="mixpanel-connector-limitations"></a>

Las siguientes son limitaciones para el conector de Mixpanel:
+ En el caso de la entidad `Segmentation Numeric`, la API de Mixpanel arroja un error `400 (Bad Request)` si no se encuentran datos numéricos para los filtros obligatorios. Tratamos esto como una respuesta `OK` para evitar una falla en el flujo.
+ El campo que se puede consultar `limit` se ha eliminado de las entidades compatibles debido a que:
  + Causaba errores porque se interpretaba como la característica límite del SDK
  + El filtro no tenía ninguna utilidad práctica
  + La funcionalidad equivalente ahora la desempeña la implementación de la característica límite
+ No se puede admitir la partición basada en campos debido a la ausencia de operadores necesarios (`>=`, `<=`, `<`, `>` y `between`) para la partición desde la plataforma SaaS. Aunque admite el operador `between`, los campos para los que admite este operador no se pueden recuperar. Por lo tanto, no se cumplen los criterios para la partición por campos.
+  Dado que no existe ninguna provisión para obtener un valor de “desplazamiento” para las entidades que admiten paginación, no es posible admitir la partición basada en registros en el caso de Mixpanel.
+ La entidad `Cohorts` solo admite el campo `CreatedDate/Time`, y no hay ningún campo para identificar `UpdatedDate/Time`, por lo que no se puede identificar `DML_Status`. Además, no existe un punto de conexión para identificar los registros eliminados. Por lo tanto, no se puede admitir CDC.
+  Para ejecutar un trabajo de AWS Glue para las entidades que se mencionan a continuación, se requieren filtros obligatorios. Consulte la tabla que aparece a continuación para conocer los nombres de las entidades y los filtros necesarios.  
**Nombre de la entidad y filtros necesarios**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/mixpanel-connector-limitations.html)