Expasys BI
Руководство пользователя (версия 2023.2)
×

Извлечение данных

 
MongoDB
Для начала импортируйте библиотеку Pandas для работы с таблицами и функцию MongoClient() из пакета pymongo для работы с СУБД Mongo, в которой хранится перечень всех книг со всей необходимой информацией о них.
import pandas as pd
from pymongo import MongoClient
Далее нужно подключиться к СУБД с помощью MongoClient и выгрузить базу данных.
db = MongoClient('mongodb://user:password@host:port/')['db']
Следующим шагом является получение коллекции (группы документов) и экземпляров данной коллекции.
collection = db['collection']
item_details = collection.find()
Для дальнейшей работы с документами преобразуем данные в таблицу pandas.
items_df = pd.DataFrame(item_details)
 
MicrosoftSQL
Для начала импортируйте библиотеку Pymssql для работы с СУБД MsSql.
import pymssql
Далее нужно подключиться к базе данных с помощью pymssql.connect().
con = pymssql.connect(server='server',
                       user='user',
                       password='password',
                       database='database')
cur = con.cursor()
Если вы не знаете точное название таблицы, которая вам нужна, можно получить список доступных таблиц, используя следующий скрипт.
cur.execute('SELECT * FROM INFORMATION_SCHEMA.TABLES')
tables = cur.fetchall()
tables
Чтобы выгрузить таблицу из базы данных можно использовать следующий шаблон, в котором вместо user и TableName нужно вписать имя пользователя, указанное в параметрах подключения к СУБД и название нужной вам таблицы из списка доступных таблиц соответственно:
cur.execute("SELECT * FROM [database].[dbo].[TableName]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='TableName'")
columns=cur.fetchall()
Пример получения таблицы с дисциплинами по специальности с информацией об изучаемых книгах:
cur.execute("SELECT * FROM [database].[dbo].[pr_Expasys_Library_DisciplinesBySpecialtyWithBookInfo]")
tupples = cur.fetchall()
cur.execute("SELECT COLUMN_NAME AS [columns] FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='pr_Expasys_Library_DisciplinesBySpecialtyWithBookInfo '")
columns=cur.fetchall()
data=pd.DataFrame(tupples, columns=pd.DataFrame(columns)[0])