Mysql 如何从csv平面文件在Apache超集中创建新数据库?
我正在尝试从csv平面文件在Apache超集中创建一个新的数据库。有两个问题。首先,根据错误消息,当我尝试编辑现有数据库并在“允许上载csv”前面标记复选框时,由于“安全原因”,它不会被保存Mysql 如何从csv平面文件在Apache超集中创建新数据库?,mysql,sql,database,apache-superset,Mysql,Sql,Database,Apache Superset,我正在尝试从csv平面文件在Apache超集中创建一个新的数据库。有两个问题。首先,根据错误消息,当我尝试编辑现有数据库并在“允许上载csv”前面标记复选框时,由于“安全原因”,它不会被保存 第二,尽管我可以按照说明从一些示例数据集启动模板数据库。我不知道如何从一系列现有的csv表在超集中创建一个新的数据库。我所有寻找解决方案的搜索都意外地没有找到有关此任务的任何线索。我通过以下python脚本成功地回答了第一个问题: # import libraries import mysql.connec
第二,尽管我可以按照说明从一些示例数据集启动模板数据库。我不知道如何从一系列现有的csv表在超集中创建一个新的数据库。我所有寻找解决方案的搜索都意外地没有找到有关此任务的任何线索。我通过以下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")
我仍然没有回答第二个问题:
如何将新数据库(db文件)插入超集?
为了创建一个新的sqlite数据库供超集使用,您可以在终端中键入:
sqlite3 csv_database.db
然后,由于sqlite的超集将为False,因此应在superset config.py文件中将以下参数设置为False:
防止\u不安全\u数据库\u连接=错误
然后,在superset中创建一个新数据库,并将其链接到以前创建的csv_database.db。SQLAlchemy URI应该类似于:
sqlite:////path/to/database/csv_database.db
我将以下选项检查为True:允许Csv上载、允许创建表为、允许DML
最后,从Sources菜单中选择Upload a CSV,以便在superset中创建新表或更新现有表