0

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

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

他们提供的选项是 1. Google FushionTables 2. Google Spreadsheet 3. Z-ALPHA Google Maps Engine 4. Z-ALPHA REDCap Server 5. Z-ALPHA JSON Server 6. Z-ALPHA Ohmage JSON Server

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

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

万分感谢。

4

3 回答 3

0

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

于 2014-09-15T02:12:56.317 回答
0

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

于 2017-02-07T19:52:51.947 回答
0

官方 ODK 社区不支持的另一个选项是使用Sean Herman 从 Aggregate 源代码创建的聚合docker 映像。按照本指南安装 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 的时间,希望对您有所帮助!

于 2016-03-07T16:11:04.033 回答