from infi.clickhouse_orm import models, fields, engines
from infi.clickhouse_orm.database import Database
# Define a simple model class
class Person(models.Model):
first_name = fields.StringField()
last_name = fields.StringField()
birthday = fields.DateField()
height = fields.Float32Field()
engine = engines.MergeTree('birthday', ('first_name', 'last_name', 'birthday'))
# Create a table for this model
db = Database('my_test_db')
db.create_table(Person)
# Insert some data
db.insert([
Person(first_name='David', last_name='Miles', birthday='1975-05-05', height=1.77),
Person(first_name='Mona', last_name='Miles', birthday='1976-09-21', height=1.74)
])
# Read data
for person in db.select("SELECT * FROM my_test_db.person", model_class=Person):
print person.first_name, person.last_name