#sqlite #命令行工具 #苹果 #转换 #健康套件 #数据集

程序 healthkit-to-sqlite-cli

将Apple HealthKit数据转换为SQLite数据库的命令行工具

4个版本

0.0.4 2022年12月31日
0.0.3 2022年12月31日
0.0.2 2022年12月31日
0.0.1 2022年12月31日

#882科学

MIT/Apache

340KB
756

healthkit-to-sqlite

ci crates.io Apache 2.0 License: MIT

将Apple HealthKit数据转换为SQLite数据库的命令行工具。

workout-routes-examples

入门指南

  1. 在您的iOS设备上打开Health应用程序。
  2. 点击右上角的个人资料图标。
  3. 点击“导出所有健康数据”按钮。
  4. 将生成的ZIP存档共享到您的计算机。
  5. 在导出的ZIP存档上运行healthkit-to-sqlite工具。
cargo install healthkit-to-sqlite-cli
healthkit-to-sqlite export.zip sqlite://healthkit.db

Datasette

您可以使用https://datasette.io/来查看和探索生成的SQLite数据库文件。安装https://datasette.io/plugins/datasette-geojson-map插件,以便在地图上可视化锻炼路线数据。

datasette install datasette-geojson-map
datasette healthkit.db

决策

  • 目前只导出RecordWorkoutActivitySummary元素。
  • Record元素插入到与元素type属性值匹配的表中。
  • Workout元素插入到名为“Workout”的表中。
    • 子元素workoutEventworkoutStatistics表示为JSON列。
    • 子元素workoutRoute被转换为GeoJSON LineString,并存储在名为“geometry”的JSON列中,以便轻松集成https://datasette.io/plugins/datasette-geojson-map
    • JSON列可能很冗长,导致HTML表格单元格尺寸很大,难以浏览。在这种情况下,指定truncate_cells_html设置可能很有用:datasette healthkit.db --setting truncate_cells_html 40。请注意,此设置似乎与datasette-pretty-json插件不兼容。
  • ActivitySummary元素作为行插入到名为“ActivitySummary”的表中。
  • 为了防止苹果添加、删除或更改元素属性,代码只假设存在有限数量的属性
    • Record 元素必须有一个 type 属性。
    • Workout 元素必须有一个 workoutActivity 属性。
    • MetadataEntry 元素必须具有 keyvalue 属性。
    • FileReference 元素必须有一个 path 属性。

依赖关系

~41-55MB
~1M SLoC