亚马逊网络服务

Mixpanel's示意的导出管道使您可以将MixPanel数据直接导出到S3存储桶中,从而使用胶水来查询它。要设置MixPanel AWS管道,您必须配置AWS以接收导出的数据,然后创建管道导出数据。

设计

900900

Mixpanel适用转型规则使数据与数据仓库兼容,然后将转换的数据传输到您的S3存储桶中。然后,您可以选择使用胶水爬车手来从转换的数据中创建模式,或者让MixPanel直接在胶水数据库中创建模式。拥有数据和胶水架构,您可以将SQL与多个AWS产品一起使用,包括亚马逊雅典娜红移光谱,查询导入的数据。

我们建议使用光谱胶水查询导入的数据。

将MixPanel数据导出到红移频谱

以下总结了将MixPanel数据导出到S3存储桶的步骤。咨询AWS文档对于AWS特定任务,例如创建S3桶权限

为传入数据准备S3:

  1. 创建一个S3存储桶。
  2. 给Mixpanel所需的权限写入水桶。
  3. 配置胶水,如下所示。

S3存储桶许可

Mixpanel支持广泛的配置,以在S3上保护和管理您的数据。为了访问资源,管道使188金宝搏备用网址用AWS交叉计数角色。

本节重点介绍了您必须根据目标S3存储桶的配置给予MixPanel的权限。

数据修改策略

从Mixpanel到AWS的所有导出都要求您创建新的数据修改策略,或将以下权限添加到现有数据修改策略中。

更换在插入此json之前,请使用您的存储桶名称:

{“版本”:“ 2012-10-17”,“语句”:[{“ sid”:“ somesidyouchoose”,“ effect”:“允许”,“ action”:[“ s3:putobject”,“ s3:getObject”:getObject“,” s3:listBucket”,“ s3:deleteObject”],“资源”:[“ arn:aws:aws:s3 :: ”,“ arn:aws:aws:s3 :: /*”]}]}}

服务器端加密

MixPanel总是在TLS加密连接上将数据发送到您的S3存储桶。为了在S3上固定数据,您可以启用服务器端加密(SSE)

使用SSE时有两种选择:使用Amazon S3管理的密钥(SSE-S3)加密,并使用AWS KMS管理的密钥(SSE-KMS)加密

使用亚马逊S3管理的钥匙加密(SSE-S3)

Bucket上的此设置使用使用S3管理的键的AES-256算法在REST上加密数据。

如果您使用此类型的SSE,则只需要通过传递来配置管道S3_Encryption = AES调用MixPanel数据管道API时参数。看AWS S3和胶参数

使用AWS KMS管理的密钥(SSE-KMS)加密

如果您使用密钥管理服务(KMS),则可以选择钥匙。

对于S3存储桶,您可以选择一个名为name的默认键AWS/S3。如果您选择使用默认键,则不需要AWS上的任何进一步的配置s3_encryption = kms调用MixPanel数据管道API时。

如果您选择使用自己的自定义键来加密存储桶的内容,则需要允许MixPanel使用键在数据写入存储桶时正确加密数据。

为了实现这一目标,创建一个IAM策略,该策略允许Mixpanel使用KMS密钥。使用以下JSON摘要并替换使用您的自定义密钥的ARN:

{“版本”:“ 2012-10-17”,“语句”:[{“ sid”:“ somesidyouchooseagain”,“效果”:“允许”,“ action”:[kms:decrypt'“,” kms:generatedatakey”,“ kms:reencryptto”,“ kms:generatedAtakeyWithOutPlaintext”,“ kms:docorcekey”,“ kms:reencryptfrom”],“资源”,“资源”:“ ”}]}]}]}

您必须通过通过s3_encryption = kmss3_kms_key_id = 调用MixPanel数据管道API时。

S3访问角色

在上面的各节中制定策略后,您必须创建一个跨帐户角色,以将政策分配给角色。

  • aws iam在控制台上的服务。
  • 点击角色在侧边栏中。
  • 点击创建角色
  • 选择其他AWS帐户在“信托策略”页面上,输入帐户ID的“ 485438090326”。
  • 在里面权限页面,查找并选择您上面创建的策略。
  • 在里面审查页面,输入角色的名称和描述,然后单击创建角色

接下来,将信任关系限制为Mixpanel导出用户,以确保仅Mixpanel才能扮演此特定角色。

  • 导航到aws iam控制台的服务。
  • 点击角色在侧边栏中。
  • 查找并单击您刚刚创建的角色。
  • 导航到信任关系标签。
  • 点击编辑信任关系
  • 用以下JSON替换内容:
{“版本”:“ 2012-10-17”,“语句”:[{“效果”:“允许”,“ principtal”:{“ aws”:“ arn:aws:iam :: 485438090326:user/mixpanel-导出“},“ action”:“ sts:asherole”,“条件”:{}}]}

使用AWS外部ID

亚马逊引入了外部ID用于交叉账户访问的使用困惑的代理人问题。由于MixPanel使用跨帐户访问来导出数据,因此您可以使用此功能使数据传输更安全。

与AWS交谈时,Mixpanel将您的项目令牌作为外部ID。为了启用这一点,您只需要编辑作为上一步的一部分创建的信任关系,并添加一个条件来检查传递的外部ID实际上是您的Mixpanel项目令牌。因此,您的信任关系的最终JSON将是:

{“版本”:“ 2012-10-17”,“语句”:[{“效果”:“允许”,“ principtal”:{“ aws”:“ arn:aws:iam :: 485438090326:user/mixpanel-导出“},“ action”:“ sts:asherole”,“条件”:{“ string equals”:{“ sts:externalId”:“ ”}}}}}}}

胶配置

胶水提供数据目录服务,该服务将有助于您从AWS帐户上的其他服务访问S3数据。

本节介绍了如何将胶水连接到S3中的导出数据。您可以选择以下任何一个选项:

  • 配置Mixpanel直接导出的胶水(建议)
  • 配置胶水以使用爬网。

笔记

如果您将雅典娜的胶水使用并想启用分区,则必须选择镶木作为管道的data_format。

配置MixPanel直接导出的胶水

一旦有新数据,Mixpanel可以在胶水实例中编写和更新架构。要获取有关表格模式的更多信息,请参阅模式。为此设置:

  1. 创建一个胶水数据库。
  • 在AWS控制台中,转到“胶水”。(确保您与S3导出的数据处于同一区域)。
  • 点击数据库在侧边栏中。
  • 点击添加数据库
  • 输入数据库名称,然后单击创建
16001600
  1. 创建IAM政策。
  • 转到控制台上的“ AWS IAM”服务。
  • 点击政策在侧边栏中。
  • 点击创建策略在屏幕顶部。
  • 在新屏幕中,单击JSON标签。
  • 粘贴以下政策:
{“版本”:“ 2012-10-17”,“语句”:[{“ sid”:“ mixpanelglueAccessStatement”,“效果”:“允许”,“ action”:[“ glue:getDatabase”,“ glue:createTable:createTable:createTable:“,“胶:gettables”,“胶:gettableversions”,“胶:更新”,“胶:删除”,“胶:gettable”],“资源”:“*”}]}
  • 点击审查政策并在下一个屏幕中给策略一个名称。
  • 点击创建策略保存。

笔记

AWS在授予胶水访问时不支持颗粒资源。188金宝搏备用网址所以你必须使用*(星号)在资源字段中,直到AWS可以188金宝搏备用网址支持更多的粒状资源。

  1. 创建IAM角色并分配您在步骤2中创建的策略。
  • 转到控制台上的“ AWS IAM”服务。
  • 点击角色在侧边栏中。
  • 点击创建角色
  • 选择其他AWS帐户在“信托策略”页面上,输入帐户ID的“ 485438090326”。
  • 在“权限”页面中,查找并选择您在步骤2中创建的策略。
  • 在评论页面中,输入角色的名称和描述,然后单击创建角色
  1. 将信任关系限制为Mixpanel导出用户。
  • 导航到控制台中的“ AWS IAM”服务。
  • 点击角色在侧边栏中。
  • 查找并单击步骤3中创建的角色。
  • 导航到“信任关系”选项卡。
  • 点击编辑信任关系
  • 用以下JSON替换内容:
{“版本”:“ 2012-10-17”,“语句”:[{“效果”:“允许”,“ principtal”:{“ aws”:“ arn:aws:iam :: 485438090326:user/mixpanel-导出“},“ action”:“ sts:asherole”,“条件”:{}}]}
  • 保存内容。
512512

在胶水中配置表分区

如果Mixpanel具有适当的AWS权限,则默认情况下将胶水表分区。分区密钥类型和名称是细绳mp_date分别和分区值是项目时区中的日期,例如2021-02-03。要启用胶水分区,胶水数据修改策略必须包括以下操作:

“胶水:GetAttition”,“胶水:createPartition”,“胶:删除部门”,“胶:更新分区”,“胶:glue:batchcreatepartition”,“胶水:getPartitions”,“ glue:glue:batchdeleteptition”,“ glue:glue:batchgetPartition”

配置胶水以使用爬网

您可以配置胶水以使用MixPanel数据爬网。胶水爬网非常方便,因为它们会自动从数据文件中提取架构并更新胶水架构。

但是,这种便利也可能构成问题,例如:

  • 爬行者的运行时间可能与Mixpanel的出口时间表不同步。结果,它可以阻止您在可用的新属性后立即使用数据。
  • 时间列被解释为整数。结果,执行时间戳操作更加困难。
  • 当使用每个事件模式选项时,胶水爬网可以根据相似性从一个表中的多个事件中合并数据。

为了避免这些问题,Mixpanel可以在可用的新数据后立即在胶水实例中编写和更新架构。跟随这些说明使Mixpanel能够将数据目录写入AWS胶水。

要使用爬行者,您必须使用MixPanel项目ID将爬网器指向顶级文件夹。

有关配置胶水以使用爬网的更多详细信息,请参阅用爬网编目桌

设置红移

当数据目录和表定义通过上述一种手段以胶水提供时,您可以将红移集群连接到目录并从Redshift查询。AWS文档详细介绍整个过程。

以下是该过程的概述。正确配置红移:

  1. 使用读取胶水的访问和包含Mixpanel数据的S3桶创建IAM角色。
  2. 将该角色分配给您的红移集群。
  3. 在以下SQL查询中插入角色和数据库名称后,将其作为cluster管理员运行:
从数据目录数据库''创建外部架构混音板 - 当您配置胶水iam_role''时,已定义 - 这是访问胶水+s3创建外部数据库的角色的ARN,如果不存在;

您只需要将红移连接到一次胶水即可。当Mixpanel管道将更多数据导出到您的存储桶和胶水目录中,您将自动访问所有新数据和模式更改。

您还可以将存储在Redshift中的数据加入S3中的MixPanel数据通过外部模式可用。

查询

您可以使用单个表模式查询数据,也可以在红移频谱中使用多个表格架构查询数据。要获取有关表格模式的更多信息,请参阅模式

要查询单个表模式,请使用此片段。

从mixpanel.mp_master_event选择count(*)

要查询多个表模式,请使用此片段。

从mixpanel中选择计数(*)。;

cleaned_event_name是基于转换的事件名称转型规则

嵌套和重复的字段

红移光谱不支持嵌套和重复的字段。

MixPanel将数组和对象属性作为字符串导出。您可以在查询时使用内置功能将字符串转换为JSON。


这个页面对你有帮助吗?