连接ODK聚合和MySQL服务器

时间:2014-09-14 16:15:47

标签: mysql sql json odk

我对ODK聚合进行了一系列调查,并希望将结果信息作为通过MySQL服务器托管的数据库中的表来访问。当然,我可以从ODK Aggregate下载数据并手动将其添加到MySQL上的数据库中。我的问题是如何将ODK Aggregate链接到MySQL,这样每次在ODK Aggregate中将新条目添加到电子表格时,它都会显示在MySQL数据库中。 (我已经通过谷歌的App Engine安装了ODK Aggregate)

ODK Aggregate为“发布”数据提供了许多选项,所有这些选项都提供了“流式传输新提交”的功能,这正是我正在寻找的。我无法弄清楚的是如何从他们提供给MySQL的发布选项中获得。

他们给出的选择是 1. Google FushionTables 2. Google电子表格 3. Z-ALPHA谷歌地图引擎 4. Z-ALPHA REDCap服务器 5. Z-ALPHA JSON服务器 6. Z-ALPHA Ohmage JSON服务器

可以设置其中一个将数据发送到MySQL吗?

如果没有,是否有另一种创建调查结果的方法会自动发送到MySQL服务器上的数据库?

万分感谢。

3 个答案:

答案 0 :(得分:0)

解决问题的最简单方法是在带有MySQL支持的Tomcat安装上安装ODK Aggregate。 http://opendatakit.org/use/aggregate/tomcat-install/有说明。

答案 1 :(得分:0)

官方ODK社区不支持的另一个选项是使用Sean Herman根据Aggregate源代码创建的docker image of aggregate。按照this guide安装Docker后,您只需运行两个命令即可获取docker镜像并启动MySQL容器和ODK聚合容器。以下是两个命令的示例:(请注意,应根据您的需要更改环境变量。)

$ docker run -d --name <your mysql container name> -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=<your schema name> -e MYSQL_USER=<your MySQL user name> -e MYSQL_PASSWORD=<your MySQL user password>  mysql:5.7  

请注意,对于端口映射(-p)选项,接受如下参数:($ HOSTPORT:$ CONTAINERPORT)

现在使用以下命令运行ODKAggregate图像:

$ docker run -d --name <your aggregate container name> --link <your      mysql container name> -p 8080:8080 -e DB_CONTAINER_NAME=<your mysql container name> -e MYSQL_DATABASE=<your schema name> -e MYSQL_USER=<your MySQL user name> -e MYSQL_PASSWORD=<your MySQL user password> -e ODK_HOSTNAME=<wherever you are hosting your container... this must be the same as the url> -e ODK_ADMIN_USERNAME=<your admin user name> kharatsa/odkaggregate:latest

这为我节省了很多时间用Tomcat设置ODK,我希望它可以帮到你!

答案 2 :(得分:0)

您可以使用:https://github.com/ilri/odktools ODK Tools是一个用于将ODK调查数据处理到MySQL数据库的工具箱