如何在Apache Superset中从csv平铺文件中创建一个新的数据库?

问题描述 投票:-1回答:1

我试图在Apache Superset中从csv平铺文件中创建一个新的数据库。有两个问题。首先,当我尝试编辑一个现有的数据库,并在 "允许上传csv "前面的复选框上打上标记时,根据错误信息,由于 "安全原因",它没有被保存。

第二,虽然我可以按照说明 此处 来从一些样本数据集发起一个模板数据库。我不知道如何才能在Superset中从一系列现有的csv表创建一个新的数据库。我所有的搜索都没有找到关于这个任务的任何线索。

mysql sql database apache-superset
1个回答
0
投票

我设法通过以下python脚本来回答第一个问题。

# import libraries
import mysql.connector
import sqlite3
from sqlite3 import Error

# creating connection to db_file (passing csv)
def create_connection(db_file):
    """ create a database connection to a SQLite database """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        print(sqlite3.version)
    except Error as e:
        print(e)
    finally:
        if conn:
            conn.close()

# saving the db file
if __name__ == '__main__':
    create_connection(r"/home/smirs/git_repos/mydatabase2.db")

我仍然没有回答第二个问题。How to insert a new database (db file) into Superset?


0
投票

为了创建一个新的sqlite数据库 被superset使用,你可以在终端输入:

sqlite3 csv_database.db。

然后,由于superset是要 掉包 对于sqlite,你应该在superset config.py文件中把以下参数设置为False。

PREVENT_UNSAFE_DB_CONNECTIONS = False。

之后,在superset中,创建一个新的数据库,并将其链接到之前创建的csv_database.db。SQLAlchemy的URI应该是这样的。

sqlite://pathtodatabasecsv_database.db。

我将以下选项勾选为True。 Allow Csv Upload, Allow CREATE TABLE AS, Allow DML.

最后从Sources菜单中选择Upload a CSV,以便在superset中创建一个新表,或者更新一个现有的表。

© www.soinside.com 2019 - 2024. All rights reserved.