我正在尝试向 Superset(数据探索平台)添加一个特殊的数据源。该数据库仅支持HTTP API,返回json格式的数据;例如:
> http://localhost/api/sql/query?q="select * from table"
< [{"id": 1, "value":10}, {"id": 2, "value": 30} ...]
Run Code Online (Sandbox Code Playgroud)
因此,我必须在 python SQLAlchemy 中为 Superset 编写自己的适配器。我已经阅读了文档和部分源代码,但仍然需要好的示例来遵循。
我在使用 Nginx 作为反向代理设置 apache superset 时遇到问题(这可能是 nginx 配置错误)。
服务器配置块(如果我缺少某些内容,请告诉我,我会添加它):
server {
listen 80 default_server;
server_name _;
root /var/www/data;
error_log /var/www/bokehapps/log/nginx.error.log info;
location /static {
alias /usr/lib/python2.7/site-packages/bokeh/server/static;
}
location /superset {
proxy_pass http://0.0.0.0:8088;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}
Run Code Online (Sandbox Code Playgroud)
我能够进入 0.0.0.0:8088 以获得重定向页面,并且我的请求正在将其发送到 werkzeug。但在我的浏览器中,一切都是 404。
我愿意通过他们的 API 将 Google Analytics 和 Google Search Console 数据直接显示到 Superset 中。
我怎样才能这样做呢?
我找不到 Google Analytics 数据源。我也找不到 Google Search Console 数据源。
我找不到在 Superset 中显示从 API 检索的数据的方法,只能显示存储在数据库中的数据。我肯定遗漏了一些东西,但我在文档中找不到与身份验证和查询外部 API 相关的任何内容。
我在以下地址运行 Apache Superset:
http://superset.example.com:8088
Run Code Online (Sandbox Code Playgroud)
这会被重定向到:
http://superset.example.com:8088/superset/welcome
理想情况下,用户将被重定向到:
http://superset.example.com:8088/welcome
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点呢?我还希望它在端口 80 下运行,因此不需要指定端口,但我也无法做到这一点。
我正在尝试 pip install Superset
pip install apache-superset
Run Code Online (Sandbox Code Playgroud)
并低于错误
Traceback (most recent call last):
File "c:\users\saurav_nimesh\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\saurav_nimesh\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Users\saurav_nimesh\AppData\Local\Programs\Python\Python38\Scripts\cmake.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'cmake'
error: command 'C:\\Users\\saurav_nimesh\\AppData\\Local\\Programs\\Python\\Python38\\Scripts\\cmake.exe' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pyarrow
Failed to build pyarrow
ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly
Run Code Online (Sandbox Code Playgroud)
尝试安装 Windows 10 …
我正在尝试为包含超过 5000 个唯一值的字段创建过滤器。但是,过滤器的查询会自动设置 1000 行的限制,这意味着大多数值不会显示在过滤器下拉列表中。
DEFAULT_SQLLAB_LIMIT我通过将和增加到 6000来更新“anaconda3/lib/python3.7/site-packages”目录中的 config.py 文件QUERY_SEARCH_LIMIT,但这不起作用。
还有其他配置需要更新吗?
PS - 下面的代码片段显示了问题似乎来自的过滤器的 json 表示形式。
"query": "SELECT casenumber AS casenumber\nFROM pa_permits_2019\nGROUP BY casenumber\nORDER BY COUNT(*) DESC\nLIMIT 1000\nOFFSET 0"
Run Code Online (Sandbox Code Playgroud) 在 apache superset 中,我看到一个“导出 CSV”选项,用于将单个图表的数据导出为 CSV。我有一个包含许多图表的仪表板,我希望用户只需单击一下即可从所有图表中导出数据。实现相同目标的最简单方法是什么?
我看到/superset/explore_json?csv=true可以调用 API 来导出图表数据。它可以用于在一次调用中对多个图表执行相同的操作吗?或者还有其他更好的方法吗?
Superset 有deck.gl Polygon可视化类型。
我正在尝试使用这种类型的图表来显示从PostGIS启用的postgres数据库中获取的多边形;但是,除了图例之外,不显示任何视觉信息。
我的数据库查询如下:
SELECT *, ST_AsGeoJSON(ST_Transform((ST_DUMP(geom)).geom::geometry(Polygon, 27700), 4326)) as geom
FROM <my-schema>.<my-table>;
Run Code Online (Sandbox Code Playgroud)
这会返回geojson Polygon这样的记录:
{
"type": "Polygon",
"coordinates": [[
[-0.029742716, 51.492925448],
[-0.028980512, 51.491626654],
[-0.027819506, 51.490055839],
...
Run Code Online (Sandbox Code Playgroud)
我已经验证QGIS查询是否有效并且geoJSON信息显示正确。
但是,这似乎不起作用superset:我创建了一个deck.gl Polygon图表,并为其选择了JSON线编码(而不是 Polyline 或 Geohash)。选择指标并将视口坐标居中到正确的地理范围后,我运行了查询,但图表中没有显示任何空间信息,只有一个显示所选指标的中断的图例。
尽管地图是空的,但用于将数据下载为 CSV 或 JSON 的相邻按钮会返回完整的数据,因此我倾向于认为我误解了其中一项设置,或者我以不正确的格式提供了数据。
有关如何使该插件工作以及它可能期望数据采用什么格式的任何指示?
一般来说,我正在努力寻找有关如何使用该superset deck.gl插件的任何文档:任何可能有用的示例或文档?
在 Superset 中,可以通过 CSS 模板自定义特定仪表板的样式,但我想更改整个 UI 的样式,例如您可以在其中看到仪表板列表的主页。做到这一点最简单的方法是什么?
我正在尝试通过 API 导入 Superset 仪表板,但目前尚未成功。我正在按照 Superset API 文档使用端点导入:
/api/v1/dashboard/import
Run Code Online (Sandbox Code Playgroud)
我的导入有效负载如下:
POST /api/v1/dashboard/import/ HTTP/1.1
Host: localhost:8088
Authorization: Bearer <access token>
Content-Length: 289
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="formData"; filename="20210615_065115.json"
Content-Type: application/json
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="overwrite"
True
----WebKitFormBoundary7MA4YWxkTrZu0gW
Run Code Online (Sandbox Code Playgroud)
我收到了状态响应200,但仪表板未导入,在 Postman 的预览响应中,我得到了以下输出:

有人可以帮助解决这个问题吗?
apache-superset ×10
python ×3
centos ×1
cmake ×1
deck.gl ×1
dialect ×1
nginx ×1
postgis ×1
pyarrow ×1
sqlalchemy ×1