我们最近遇到了一个客户的场景,我们需要对他们的坐标信息进行反向地理编码。本质上,这意味着,他们将提供经纬度数据,我们需要检索该坐标周围的地缘政治信息,如街道名称、编号、城市、州、国家等,我们看到了下面的博客
https://blogs.sap.com/2014/02/02/reverse-geocode-your-hana-data-with-this-xs-javascript-utility/
作者凯文·斯莫尔(Kevin Small),正好涵盖了我们需要的内容。
不幸的是,我们的博客是从2014年开始的,谷歌的反向地理编码API接口有了一些变化。另外,Kevin的解决方案非常复杂和动态,我们的需求非常基本,大数据啥意思,因此我们必须将其简化一点。
考虑到这一点,我想提供一个我们提出的解决方案的演练,它建立在Kevin最初的解决方案的基础上。
我们正在为此使用Google API。我相信还有其他资源可以用于同样的目的。请注意,谷歌API是一个付费产品,所以请阅读他们的定价,以了解成本影响:
https://developers.google.com/maps/documentation/geocoding/usage-and-billing
特别感谢Aaron Wojton和Antonio Buonaccorsi。此更新解决方案背后的真正开发人员。当人们知道他们在做什么的时候,它就表现出来了!
步骤1
我们做的第一件事是创建一个模式和一个包含坐标(纬度+经度)的表,以及我们从Googles API检索的其他反向地理编码属性
首先我们创建了模式"反向地理编码",并将select授予SYS\u REPO用户:
然后我们创建了一个简单的表,其中包含经纬度以及要从Google API检索的地缘政治信息:
然后我们插入一些随机坐标信息来测试解决方案:
步骤2
确保在开始开发之前,您拥有Google的API密钥,按照以下说明:
https://developers.google.com/maps/documentation/javascript/get-api-key
这将是实际查询API所必需的。
步骤3
现在我们可以在HANA中构建Javascript对象。让我们先创建一个XS项目来容纳所有相关的对象:
给它一个名称:
确保您选择了正确的存储库工作区:
确保XS应用程序访问和XS应用程序描述符都被选中。还要添加geodataEnrich XS JavaScript并点击Finish:
您的XS项目将使用所选对象创建:
接下来,让我们创建HTTP目标配置文件。在这个新包中,单击新建:
给它下面的名称:
并输入下面的信息。并不是说密钥将是在步骤1中获得的令牌。还要注意,其中一些参数需要根据您的网络设置进行定制:
主机="地图.googleapis.com";端口=443;description="谷歌地理编码API";
pathPrefix="/maps/API/geocode/json?key=在步骤1中获得的令牌";authType=无;useProxy=false;超时=0;useSSL=真;sslAuth=anonymous;
它应该是这样的:
接下来,通过右键单击文件并选择activate来激活它:
我们现在将创建一个Javascript库文件:
给它下面的名称:
一旦创建了文件,请输入下面的代码:
请密切注意下面突出显示的部分,它需要指向在您的环境中创建的包,以及正确的http目标文件:
激活该文件。
接下来,将下面的代码添加到地理数据.xsjs创建XS项目时创建的文件:
再次,确保您修改了xsjs语法中的包,以反映在您的系统中创建的包:
还有,更新代码中的以下部分,淘客工具,以反映创建的具有坐标信息的架构和表名:
完成后,激活xsjs文件。
现在您应该能够运行URL来调用Google API:
https://your\u租户\u主机:端口/包名称/javascript_文件.xsjs
我们的房客就是这样,省略租户名称:
https://our\u tenant.com:4390/反向代码/地理数据.xsjs
一旦URL被执行,我们应该看到表格中填充了必要的信息:
我们现在可以在HANA建模中使用这个表格,或者用这些属性扩充数据,或者可能构建允许钻取地缘政治数据。
第4步
我们现在将遍历计划此javascript的过程,以便可以在预定义的计划中更新信息。
我们将创建一个XS作业计划文件:
提供以下名称并点击完成:
输入以下语法:
确保更新了下面突出显示的部分作为在系统中创建的包名和javascript
激活文件。
请注意,调度符号是XSCRON。以下是帮助参考页:https://help.sap.com/viewer/d89d4595fae647eabc14002c0340a999/2.0.02/en-US/621544621334d9fa96c662c18fb66f7.html
确保调度作业的用户分配了正确的角色:
sap.hana.xs文件.管理员角色:httpdestministrator
sap.hana.xs文件.管理员角色●JobAdministrator
以下是对XSCRON语法:
因此,对于我们特定的XS作业flie,我们计划它在每月和每年的每一天、每一小时、第59分钟和第59秒运行。你可以根据你的要求来改变它。
下一步,需要使用下面的语法转到XS Admin页面:
\u HOST.com:8090/sap/hana/xs/admin/
登录后,单击菜单并选择xs-Artifact-Administration
,
您将看到系统中的所有软件包。单击包含XS作业文件的包旁边的箭头
您应该会看到一些工件。单击您创建的XS作业:
将显示以下信息。接下来点击配置选项卡:
输入您的用户和密码,点击活动复选框,点击保存作业按钮,大数据包括哪些内容,数据呈现,然后看。你的工作已经安排好了。然后,人工智能龙头企业,您可以单击查看日志按钮查看作业的状态。
现在您看到了它。
像往常一样,我希望您发现这很有用。如果您有任何意见或建议,请留下评论。再次感谢亚伦和安东尼奥让这一切成为现实。