对于我们的一个洞察平台,我们计划在后台生成摘要SQLite3数据库,并让它以图表的形式呈现在浏览器上。目前,我们打算提供一个服务于数据需求的服务器端端点。
我们希望通过完全消除服务器端端点来进一步优化这一点。我们可以(从安全的角度)直接在S3上公开SQLite3,并让javascript模块读取和生成图表。
SQLite3文件预计会相当小--可能是4-6列,可能是10-500行数据,而且所有这些数据都只包含一个表。测试运行表明文件大小小于15KB。我们不打算在浏览器上编写或操作SQLite3。我们不需要在浏览器上以WebSQL或IndexedDB表单的形式缓存它,但如果需要的话,我们可以使用它们。
从我的网络搜索中,我们找不到可以读取SQLite3文件并查询结果的Javascript库。如果你知道有什么javascript库可以做到这一点,请让我们知道。
另一方面,如果你认为无论出于什么原因,我们都不应该这样做,那么也请把它们作为评论/答案,因为这是我们第一次尝试的东西,看起来有点开箱即用,所以欢迎反馈!
发布于 2013-02-08 15:18:04
我不能说最好的,但有一个:自己写一个JavaScript SQLite阅读器库。这将是一个单调乏味的任务,但我相信它是可以完成的。一些很酷的人做了pdf.js,它是一个JavaScript文件的渲染器,也是像SQLite files一样的二进制BLOB。
您很可能会从遍历SQLite文件的FileReader API开始,然后创建一些内存中的内容表示形式,供图表工具使用。
免责声明:您可能希望使用其他人提出的另一种解决方案来解决最初的问题,但这回答了您的问题。
发布于 2014-05-27 07:44:12
有一个名为sql.js
的javascript库,它可以做你想做的事情。在您的例子中,您可以这样使用它
const SQL = await initSqlJs(options);
const fetched = await fetch("/path/to/database.sqlite");
const buf = await fetched.arrayBuffer();
const db = new SQL.Database(new Uint8Array(buf));
const contents = db.exec("SELECT * FROM my_table");
// contents is now [{columns:['col1','col2',...], values:[[first row], [second row], ...]}]
https://stackoverflow.com/questions/14764707
复制相似问题