将Intercom Webhook整合到Redshift:2种快速方法

325 阅读15分钟

将Intercom Webhook集成到Redshift:2种快速方法

Akshaan SehgalonAmazon Redshift,数据仓库,集成,未分类,Webhook- 2022年6月14日 -Write for Hevo

你是否在寻求快速而简单的方法来连接对讲机webhook到Redshift?你来对地方了。

当一个事件发生时,webhooks提供从一个应用程序到另一个应用程序的实时信息传输。这些事件作为一个触发器,通过短信向目的地传递警报,这比传统技术(如轮询)要快得多。

目录

什么是Webhook?

图片来源

Webhook是一个API概念,它的影响力越来越大。Webhooks越来越有用,因为我们在网络上做的越来越多的事情都可以用事件来定义。它们是相当方便的,是建立事件反应的低成本方法。

Webhook(也被称为网络回调或HTTP推送API)是一个程序向其他应用程序提供实时数据的手段。webhook实时向其他应用程序发送数据,所以你可以马上得到它。与传统的API不同,你不需要经常轮询数据就能收到实时结果。这样一来,Webhooks对供应商和客户来说都变得更有效率。Webhooks的唯一缺点是一开始设置它们时的复杂性。

Webhooks有时被称为 "反向API",因为它为你提供了一个API标准,需要你为Webhook创建一个API来使用。Webhook会向你的应用程序发送一个HTTP请求(通常是POST),而你将负责破译它。

**使用Hevo的无代码数据管道在几分钟内复制数据
**

Hevo数据,一个完全管理的数据管道平台,可以帮助你在几次点击中自动化,简化和丰富你的数据复制过程。通过Hevo的各种连接器和快速的数据管道,你可以从100多个数据源直接提取和加载数据到你的数据仓库或任何数据库。为了进一步简化和准备你的数据分析,你可以使用Hevo强大的内置转换层来处理和丰富原始颗粒数据,而不需要写一行代码。

免费开始使用HEV

Hevo是最快,最简单,最可靠的数据复制平台,将为你的工程带宽和时间节省数倍。今天就来试试我们的14天免费试用版,体验一下完全自动化的无障碍数据复制吧!

什么是亚马逊Redshift?

图片来源

AWS数据仓库解决方案Amazon Redshift可以在AWS云中进行业务分析。客户可以使用典型的SQL查询来查询Redshift中PB级的结构化和半结构化数据。

AWS用户可以以每小时0.25美元的低廉价格开始开发一个Redshift数据仓库,并将其扩大以满足其业务需求。Redshift可以部署为一个160GB的节点,也可以部署为一个多节点的集群系统,由一个 "领导者 "节点控制客户端连接,并在多达128个计算节点前接收查询,这些节点存储数据并运行查询。

Redshift采用了强大的压缩技术,与典型的关系型数据库存储相比,压缩单个数据库列以实现相当大的压缩。因此,保存在Redshift中的数据比保存在计算系统中的数据需要更少的存储空间。

Redshift利用 "大规模并行处理(MPP)技术,动态分配数据和查询工作负载的整体计算节点,使Redshift能够快速有效地在大规模数据集上执行复杂的查询。

亚马逊Redshift的主要特点是什么?

  • 更快的性能。Amazon Redshift通过利用机器学习、并行架构和计算优化的硬件,产生高吞吐量和亚秒级反应时间。有了Amazon Redshift,花在等待上的时间就少了,花在从检查的数据中产生洞察力上的时间就多了。
  • 易于设置。基本设置、部署和管理。亚马逊Redshift是迄今为止最简单和用户友好的数据仓库,允许用户在短短几分钟内安装一个新的数据仓库。一些最常见的管理、监控和扩展数据仓库的管理职责,可以随时使用Amazon Redshift自动完成。这就把用户从复杂的内部数据仓库管理中解放出来。
  • 可扩展性。亚马逊Redshift可以在用户的数据库和亚马逊S3数据湖中扩展从几十亿字节到几十亿字节的数据查询,允许用户迅速分析S3中的任何数量的数据,而无需任何加载或提取-转换-加载(ETL)技术。它允许你通过几个终端点击或一个API请求来简单地调整Redshift集群的大小。用户可以根据自己的需要上下调整Redshift的大小。
  • 短期查询加速。亚马逊Redshift的优势之一是,用户可以将他们的数据仓库扩展为数据湖。这使得用户可以获得详细的数据洞察力,否则不可能通过查询独立的数据仓获得。Redshift Spectrum的用户可以直接查询存储在Amazon S3的开放数据类型。这种独一无二的功能使Redshift可以查询数据,而不需要额外的数据迁移。这使得用户可以使用单一服务研究数据仓库和数据湖的数据。

是什么让Hevo的ETL流程成为同类中最好的?

如果你有大量的数据,提供一个高质量的ETL解决方案可能是一个困难的任务。Hevo的自动化,无代码平台使你拥有一个顺利的数据复制经验所需的一切。

看看是什么让Hevo如此神奇。

  • 完全管理。Hevo不需要管理和维护,因为它是一个完全自动化的平台。
  • 数据转换。Hevo提供了一个简单的界面来完善、修改和充实你要传输的数据。
  • 更快的洞察力生成。Hevo提供近乎实时的数据复制,所以你可以获得实时的洞察力生成和更快的决策。
  • 模式管理。Hevo可以自动检测传入数据的模式,并将其映射到目标模式。
  • 可扩展的基础设施。Hevo有内置的100多个来源的集成(有40多个免费来源),可以帮助你根据需要扩展你的数据基础设施。
  • 实时支持。Hevo团队24小时不间断地通过聊天、电子邮件和支持电话向客户提供特殊支持。

在此注册,获得14天的免费试用期!

将Intercom Webhook整合到Redshift的方法。

有2种简单的方法来整合Intercom Webhook到Redshift。

方法一:整合Intercom Webhook到Redshift。

这种将Intercom Webhook整合到Redshift的方法需要编码知识和对REST API的理解。

1.使用Intercom REST API来获取数据。

从Intercom拉取数据通常用于将你所有的用户,以及你与他们每个人的所有讨论都集中在一起。之后,你可以将这些数据导入你的数据仓库,通过包括与他们的额外互动来提高你的分析能力。要做到这一点,你需要首先收集所有的用户,你可以用CURL以如下方式完成。

curl https://api.intercom.io/users
-u pi3243fa:da39a3ee5e6b4b0d3255bfef95601890afd80709
-H 'Accept: application/json'

下面是一个典型结果的例子。

{
 "type": "user.list",
 "total_count": 105,
 "users": [
   {
     "type": "user",
     "id": "530370b477ad7120001d",
      ...
    },
    ...
  ],
 "pages": {
   "next": "https://api.intercom.io/users?per_page=50&page=2",
   "page": 1,
   "per_page": 50,
   "total_pages": 3
 }
}

现在我们可以通过运行下面的命令来获得在Intercom上发生的所有互动的综合列表。

$ curl
https://api.intercom.io/conversations?type=admin&admin_id=25&open=true
-u pi3243fa:da39a3ee5e6b4b0d3255bfef95601890afd80709
-H 'Accept:application/json'

而下面是一个典型结果的例子。

{
 "type": "conversation.list",
 "conversations": [
   {
     "type": "conversation",
     "id": "147",
     "created_at": 1400850973,
     "updated_at": 1400857494,
     "user": {
       "type": "user",
       "id": "536e564f316c83104c000020"
     },
     "assignee": {
       "type": "admin",
       "id": "25"
     },
     "conversation_message": {
       "type": "conversation_message",
       "subject": "",
       "body": "<p>Hi Alice,</p>nn<p>We noticed you using our Product, do you have any questions?</p> n<p>- Jane</p>",
       "author": {
         "type": "admin",
         "id": "25"
       },
       "attachments": [
         {
           "name": "signature",
           "url": "http://someurl.com/signature.jpg"
         }
       ]
     }
   }
 ]
}

可以看到,每个对话都有一个带有ID的用户对象,使我们能够将这些对话与我们之前收集的人联系起来。当然,为了在我们的数据仓库存储库上做到这一点,我们必须将上述结构翻译成存储库的数据模型,同时考虑到模式和数据类型。

然后,按照下面的方法,我们可以构建一个管道,提取数据,将其转化为我们存储库的模型,并加载数据。当然,如果Intercom的API发生变化,管道就会失败,我们就必须处理这个问题了。

2.让你的Intercom数据为Intercom Webhook到Redshift做好准备
亚马逊Redshift是基于行业标准的SQL,包括管理非常大的数据集和进行高性能分析的功能。要把你的数据放入其中,你需要遵循它的数据模型,这是一个标准的关系型数据库模型。表和列应该使用你从数据源收集的数据来创建。

其中,表作为你希望存储的资源的地图,而列则代表资源的品质。另外,每个属性都应该符合Redshift目前支持的数据类型;现在支持的数据类型是。

  • SMALLINT
  • INTEGER
  • BIGINT
  • 二进制
  • 实数
  • 双精度
  • BOOLEAN
  • CHAR
  • VARCHAR
  • 日期
  • TIMESTAMP

因为你的数据可能是以JSON这样的格式出现的,而JSON支持的数据类型非常有限,所以你必须谨慎对待你输入Redshift的数据,并确保你的数据类型被映射到Redshift支持的数据类型之一。

为Redshift设计一个模式,并将数据从你的数据源映射到它,这是一个你应该注意的过程,因为它可能会影响你的集群的性能,以及你可以回答的问题。牢记亚马逊发布的设计Redshift数据库的最佳实践总是一个好主意。

3.从Intercom Webhook加载数据到Redshift

要把你的数据从Intercom Webhook加载到Redshift,你需要把它放在Redshift可以访问的源中。如前所述,Amazon S3、Amazon DynamoDB和Amazon Kinesis Firehose是支持的三个主要数据源,其中Firehose是最近增加的一种向Redshift输入数据的机制。

要把你的数据上传到S3,你需要利用AWS的REST API;正如我们之前看到的,API对于数据提取和加载到我们的数据仓库都很关键。第一步是创建一个桶,你可以通过使用S3的亚马逊AWS REST API端点进行HTTP PUT来完成。

这可以用CURL或Postman等工具来完成。另外,你也可以利用亚马逊的库,为你的首选语言服务。

在你建立了你的桶之后,你可以开始使用相同的AWS REST API向Amazon S3交付数据,但这次是使用对象操作端点。你可以直接访问HTTP端点或利用你选择的库,就像Bucket一样。

DynamoDB从S3导入数据,这在S3和亚马逊Redshift之间增加了一个步骤,如果你因为其他原因不需要它,你可以跳过。

亚马逊Kinesis Firehose是向Redshift输入数据的最新技术,它提供了一种实时流式的数据输入方法。以下是使用Kinesis Firehose向Redshift添加数据的步骤。

  • 建立一个交付通道
  • 向流中添加信息

每当你向流中添加新数据时,Kinesis会处理推送新数据到S3或Redshift。如果你的目的是将数据发送到Redshift,那么在这种情况下通过S3是很浪费的。和前两种情况一样,前面的两个阶段可以使用REST API或你选择的库来完成。区别在于,你将使用Kinesis Agent将数据放入流中。

有两种方法可以将数据放入Amazon Redshift。第一种方法是使用INSERT命令。你可以使用你的客户端使用JDBC或ODBC连接来连接到你的Amazon Redshift实例,然后运行INSERT命令来插入你的数据。

insert into category_stage values
(12, 'Concerts', 'Comedy', 'All stand-up comedy performances');

INSERT命令的使用方式与其他SQL数据库的使用方式相同;有关其他细节,请参见Amazon Redshift文档的INSERT示例页面。

Redshift并不是为了进行类似INSERT的操作;相反,使用COPY命令进行批量上传是将数据导入的最有效手段。你可以使用 COPY 命令从 S3 平板文件或 Amazon DynamoDB 表中复制数据。当你使用COPY命令时,Redshift可能会一次读取许多文件,并在集群节点之间分散负担,允许并行处理负载。

COPY是一个非常通用的命令,可以根据你的需要以各种方式使用。在Amazon S3上执行COPY的命令就是这么简单。

copy listing
from 's3://mybucket/data/listing/'
credentials 'aws_access_key_id=;aws_secret_access_key=';

请查看Amazon Redshift文档中的COPY示例页面,了解如何使用COPY命令的更多例子。和INSERT命令一样,你必须首先使用JDBC或ODBC连接到你的Amazon Redshift实例,然后使用Amazon Redshift文档中的SQL参考来运行你想要的命令。

方法2 - 将Intercom Webhook整合到Redshift。使用Hevo Data

Hevo Data,一个无代码数据管道可以帮助你将数据从Intercom Webhook无缝整合到Redshift。它是一个可靠和安全的服务,不需要你写任何代码!

前提是

第1步 配置源

  • 进入你的Hevo账户并登录。在资产调色板中默认选择PIPELINES。
  • 从源的列表中,选择Webhook。该列表是基于你在第一次设置Hevo账户时选择的源。

图片来源

如果Webhook没有显示在列表中,去查看全部,搜索它,然后在选择源类型页面中选择它。

图片来源

  • 在配置你的Webhook源页面上,将JSON路径设置为事件名称的根和你的有效载荷中的字段的根。编写JSONPath表达式是一个好的开始。

    注意,根据目的地类型,字段可能不同。应该被读取。

图片来源

  • 点击CONTINUE。

步骤 2 选择和配置目的地

  • 在选择目的地类型页面上选择你的目的地。在这种情况下,我们将使用Amazon Redshift。

图片来源

  • 为了建立你的Amazon Redshift目的地,进入Configure your Amazon Redshift Destination页面,输入Amazon Redshift设置。

注意,根据你想配置的Destination的类型,字段可能有所不同。阅读《Destinations》一书

图片来源

  • 保存并继续
  • 如果你想改变Destination表或分区的名称,在Destination表前缀框中输入一个前缀;否则,留空。
  • 继续点击CONTINUE。

一个Webhook URL与样本有效载荷一起被生成。阅读Webhook

步骤3 设置Webhook

  • 在你希望推送事件到Hevo的应用程序中,复制并粘贴上面步骤2中创建的Webhook URL。示例片段可用于测试Webhook URL与Hevo的连接。

图片来源

第4步:对从Intercom Webhook到Redshift的数据进行最后调整

  • 你也可以使用Transformations来清理源数据,或以任何其他方式增强它作为最终设置的一部分。你也可以使用模式映射器 来查看和更新Intercom Webhook到Redshift的字段映射。

一旦你建立了第一条管道,将数据从Intercom Webhook传输到Redshift,数据摄取过程就开始了。

Intercom Webhook到Redshift。结论

在这篇文章中,你对Webhook和Amazon Redshift有了一个概述。之后,你了解了用两种简单的方法将Intercom Webhook整合到Redshift。

从不同的数据源中提取复杂的数据来进行有洞察力的分析是一项具有挑战性的任务,而这正是Hevo拯救了这一切Hevo数据,一个无代码的数据管道可以从100多个来源的浩瀚海洋中无缝传输数据到数据仓库或你选择的目的地。它是一个可靠的、完全自动化的、安全的服务,不需要你写任何代码!

访问我们的网站来探索Hevo

Hevo介绍视频

想体验一下Hevo吗?

注册一个14天的免费试用 ,简化你的数据整合过程。请查看 定价细节,了解哪种方案能满足你所有的业务需求。

请在下面的评论中分享你对Intercom Webhook to Redshift连接的看法!

为您的数据仓库提供无代码的数据管道

免费试用