数据可视化相关开源软件和专业软件

Superset

出现一些问题 不能简单部署到nas

github apache/superset: Apache Superset is a Data Visualization and Data Exploration Platform

docx intro | Superset

git clone --depth=1 https://github.com/apache/superset.git
最无脑的配置:
docker compose -f docker-compose-non-dev.yml up
编辑配置以实现长久化存储
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------
# We don't support docker compose for production environments.
# If you choose to use this type of deployment make sure to
# create you own docker environment file (docker/.env) with your own
# unique random secure passwords and SECRET_KEY.
# -----------------------------------------------------------------------
x-superset-volumes:
&superset-volumes
- ./docker:/app/docker
- E:/Software/Foreign/superset/save/data:/app/superset_home
x-common-build: &common-build
context: .
target: dev
cache_from:
- apache/superset-cache:3.10-slim-bookworm
services:
redis:
image: redis:7
container_name: superset_cache
restart: unless-stopped
volumes:
- E:/Software/Foreign/superset/save/redis:/data
db:
env_file:
- path: docker/.env
required: true
- path: docker/.env-local
required: false
image: postgres:15
container_name: superset_db
restart: unless-stopped
volumes:
- E:/Software/Foreign/superset/save/db:/var/lib/postgresql/data
- ./docker/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
superset:
env_file:
- path: docker/.env
required: true
- path: docker/.env-local
required: false
build:
<<: *common-build
container_name: superset_app
command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"]
user: "root"
restart: unless-stopped
ports:
- 10010:8088
depends_on:
superset-init:
condition: service_completed_successfully
volumes: *superset-volumes
environment:
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
superset-init:
container_name: superset_init
build:
<<: *common-build
command: ["/app/docker/docker-init.sh"]
env_file:
- path: docker/.env
required: true
- path: docker/.env-local
required: false
depends_on:
db:
condition: service_started
redis:
condition: service_started
user: "root"
volumes: *superset-volumes
healthcheck:
disable: true
environment:
SUPERSET_LOAD_EXAMPLES: "${SUPERSET_LOAD_EXAMPLES:-yes}"
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
superset-worker:
build:
<<: *common-build
container_name: superset_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file:
- path: docker/.env
required: true
- path: docker/.env-local
required: false
restart: unless-stopped
depends_on:
superset-init:
condition: service_completed_successfully
user: "root"
volumes: *superset-volumes
healthcheck:
test:
[
"CMD-SHELL",
"celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
]
environment:
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
superset-worker-beat:
build:
<<: *common-build
container_name: superset_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file:
- path: docker/.env
required: true
- path: docker/.env-local
required: false
restart: unless-stopped
depends_on:
superset-init:
condition: service_completed_successfully
user: "root"
volumes: *superset-volumes
healthcheck:
disable: true
environment:
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
导航到有docker-compose-non-dev.yml目录即可
docker compose -f docker-compose-non-dev.yml up
最后除了superset_init之外其余的容器是打开状态即可

Metabase

github metabase/metabase: The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:

official pages Metabase

不需要提前创建文件夹 只需要配置好两个容器 metabase和它的数据库 prostgreSQL

以下比较无脑 创建一个应用俩容器 一个metabase 一个postgresql

version: "3.8"
services:
metabase:
image: metabase/metabase:latest
container_name: metabase
hostname: metabase
volumes:
- /share/Container/metabase/data:/metabase_data
ports:
- 10011:3000
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabaseappdb
MB_DB_PORT: 5432
MB_DB_USER: metabase
MB_DB_PASS: mysecretpassword
MB_DB_HOST: postgres
networks:
- metanet1
healthcheck:
test: curl --fail -I https://127.0.0.1:3000/api/health || exit 1
interval: 15s
timeout: 5s
retries: 5
postgres:
image: postgres:latest
container_name: postgres
hostname: postgres
volumes:
- /share/Container/metabase/postgresql:/var/lib/postgresql/data
environment:
POSTGRES_USER: metabase
POSTGRES_DB: metabaseappdb
POSTGRES_PASSWORD: mysecretpassword
networks:
- metanet1
networks:
metanet1:
driver: bridge

以下是 mysql为独立容器时我的配置

version: "3.8"
services:
metabase:
image: metabase/metabase:latest
container_name: metabase
hostname: metabase
volumes:
- /share/Container/metabase/data:/metabase_data
ports:
- 10011:3000
networks:
- mysql_mysql
networks:
mysql_mysql:
external: true # 使用外部网络 mysql

Redash

Redash helps you make sense of your data

本机 不注重数据长久化存储
version: "2"
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
environment:
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "D7f[)4RU]GDF7F5}@&Ne|'MGznvaXESM"
ports:
- "10012:5000"
worker:
image: redash/redash:latest
command: worker
depends_on:
- redis
- postgres
environment:
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "D7f[)4RU]GDF7F5}@&Ne|'MGznvaXESM"
redis:
image: redis:6.2
postgres:
image: postgres:13
environment:
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
postgres-data: 增添持久化存储机制

长久化存储

version: "2"
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
environment:
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "D7f[)4RU]GDF7F5}@&Ne|'MGznvaXESM"
ports:
- "10012:5000"
worker:
image: redash/redash:latest
command: worker
depends_on:
- redis
- postgres
environment:
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "D7f[)4RU]GDF7F5}@&Ne|'MGznvaXESM"
redis:
image: redis:6.2
volumes:
- /share/Container/redash/redis-data:/data
postgres:
image: postgres:13
environment:
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- /share/Container/redash/postgres-data:/var/lib/postgresql/data

容器弄好后还需要初始化 Redash 数据库

Redash 需要初始化数据库才能正常工作。执行以下命令:

  1. 进入 Redash server 容器:bashdocker exec -it redash_server_1 /bin/bash
  2. 在容器内运行数据库迁移和初始化命令: /app/bin/docker-entrypoint create_db
  3. 初始化完成后,退出容器:exit

本技术内容仅供学习和交流使用,如有疑问请联系qq2014160588并注明来意。请确保在使用过程中遵守相关法律法规。任何因使用本技术内容而导致的直接或间接损失,作者概不负责。用户需自行承担因使用本技术内容而产生的所有风险和责任。请勿将本技术内容用于任何非法用途。
上一篇
下一篇