2016-08-31 1 views

Antwort

0

Ich erstelle Grafiken aus einer Datenbank mit> 10 Millionen Einträgen. Die Aggregation wird hauptsächlich von der Datenbank selbst durchgeführt. Manche Operationen benötigen viel Zeit, aber es ist in Ordnung.

Die Verbindung zur Datenbank ist mit sqlalchemy und mysqlconnector einfach. Es gibt viele andere Konnektoren für mysql.

Hier ein kleines Testskript für sqlalchemy. Die Tabellen werden in diesem Beispiel generiert.

können Sie mehr bei http://www.sqlalchemy.org/

from sqlalchemy import create_engine 
from sqlalchemy.orm import sessionmaker 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy import Column, String, Integer, BigInteger, Text, Index 
from sqlalchemy.orm.scoping import scoped_session 


Base = declarative_base() 
class ATestEntity(Base): 
    __tablename__ = 'a_test_entity_table' 

    id = Column(String(32), primary_key=True) 
    astring = Column(String(32)) 

    aint = Column(BigInteger, default=-1) 


dialect = "mysql+mysqlconnector" 
username = "username" 
password = "passwort" 
host = "localhost" 
port = "3306" 
database = "tests" 

dbconnector = '%s://%s:%[email protected]%s:%s/%s?charset=utf8mb4&use_unicode=0' % \ 
    (dialect, username, password, host, port, database,) 
engine = create_engine(dbconnector) 
session_factory = sessionmaker(autocommit=False, autoflush=False) 
session_factory.configure(bind=engine) 

Base.metadata.create_all(engine) 

s = scoped_session(session_factory) 
try: 
    #Create a new entity 
    a_obj = ATestEntity() 
    a_obj.id = 'test' 
    a_obj.astring = 'this is a test' 
    a_obj.aint = 10 
    s.add(a_obj) 
    s.commit() 

    #Delete a entity 
    s.query(ATestEntity).filter(ATestEntity.id == 'test').delete() 
    s.commit() 

except: 
    s.rollback() 
    raise 

Die mathematische Berechnung finden außerhalb mit numpy getan werden kann und SciPy, wenn nötig. http://www.numpy.org/ https://www.scipy.org/

Das Grundstück kann mit matplotlib erfolgen. Es gibt viele Beispiele auf. http://matplotlib.org/examples/index.html Sie können auch Prety-Diagramme generieren.

Ich erzeuge meine Berichte aus generierten Latex-Dateien. Aber es gibt auch viele PDF-Bibliotheken für Python.

Es ist nur ein Weg, um es zu erledigen.

+0

Vielen Dank es zu schätzen wissen. Ich werde das auf jeden Fall überprüfen. –

+0

Ich möchte nur klarstellen, dass ich bereits eine Datenbank habe, was ich tun möchte, um Daten aus zwei Spalten, z. ein Histogramm. –

+0

Sie können Entitäten erstellen, die Ihre Datenbank darstellen, und Sie müssen nicht Base.metadata.create_all (engine) aufrufen, die die Tabellen erstellt. Es ist wirklich einfach, mit SQLAlchemy auf Ihre Datenbank zuzugreifen. – ego2dot0

Verwandte Themen