有人将Google Analytics数据移动到Azure中吗?我已经看到了很多方法,但我不确定自己会陷入什么境地。谷歌分析数据正在变得相当大,我想知道是否最适合将其留在谷歌存储中并从Azure访问,或者将其移动到HDInsight或data Lake之类的地方。我需要在几个不同的数据存储中加入数据,SQL Azure、Blob和表存储。我还研究了ApacheDrill和Presto作为统一数据访问的可能解决方案。只是想看看是否有人处理过同样的问题,并有任何经验可以分享。谢谢
前言
我没有Presto的经验,所以我只能评论Drill这样做的可行性。此外,我还没有使用Azure服务,所以我的建议是理论性的。
钻机存储插件
Drill将允许您对来自不同来源的数据执行任何SQL查询,前提是每个数据源都有一个存储插件。存储插件只是Drill中的一段代码,它允许您与数据源接口。由于您关心的是对3个数据源执行查询,我们需要确定这3个数据来源中的每一个是否都有存储插件。
SQL Azure
我假设SQLAzure有一个用于java的jdbc驱动程序。如果是,则可以按照以下说明将Drill配置为使用SQL Azure。
Azure Blob
Azure Blob存储实现了hadoop文件系统api,Drill使用该api从文件系统读取数据。因此,理论上可以添加hadoopazurejar及其依赖项https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-azure/2.7.0到Drill的类路径,并配置Drill DFS存储插件以使用它。
此外,Azure Blob中的数据必须以支持的文件格式存储,如:json、parquet、csv或hadoop序列文件。
Azure表
这看起来像微软的自定义NoSQL数据库。目前Drill不支持它。
结论
通过一些工作,您可以使用Drill查询Azure SQL和Blob上的数据,但不能查询Azure表上的数据。