mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2024-12-01 12:53:46 +03:00
47 lines
2.8 KiB
Markdown
47 lines
2.8 KiB
Markdown
System Models
|
|
=============
|
|
|
|
[Clickhouse docs](https://clickhouse.yandex/docs/en/system_tables/).
|
|
|
|
System models are read only models for implementing part of the system's functionality, and for providing access to information about how the system is working.
|
|
|
|
Currently the following system models are supported:
|
|
|
|
| Class | DB Table | Comments
|
|
| ------------ | -------------- | ---------------------------------------------------
|
|
| SystemPart | system.parts | Gives methods to work with partitions. See below.
|
|
|
|
Partitions and Parts
|
|
--------------------
|
|
|
|
[ClickHouse docs](https://clickhouse.yandex/docs/en/query_language/queries/#manipulations-with-partitions-and-parts).
|
|
|
|
A partition in a table is data for a single calendar month. Table "system.parts" contains information about each part.
|
|
|
|
| Method | Parameters | Comments
|
|
| --------------------- | ------------------------- | -----------------------------------------------------------------------------------------------
|
|
| get(static) | database, conditions="" | Gets database partitions, filtered by conditions
|
|
| get_active(static) | database, conditions="" | Gets only active (not detached or dropped) partitions, filtered by conditions
|
|
| detach | settings=None | Detaches the partition. Settings is a dict of params to pass to http request
|
|
| drop | settings=None | Drops the partition. Settings is a dict of params to pass to http request
|
|
| attach | settings=None | Attaches already detached partition. Settings is a dict of params to pass to http request
|
|
| freeze | settings=None | Freezes (makes backup) of the partition. Settings is a dict of params to pass to http request
|
|
| fetch | settings=None | Fetches partition. Settings is a dict of params to pass to http request
|
|
|
|
Usage example:
|
|
|
|
from infi.clickhouse_orm.database import Database
|
|
from infi.clickhouse_orm.system_models import SystemPart
|
|
db = Database('my_test_db', db_url='http://192.168.1.1:8050', username='scott', password='tiger')
|
|
partitions = SystemPart.get_active(db, conditions='') # Getting all active partitions of the database
|
|
if len(partitions) > 0:
|
|
partitions = sorted(partitions, key=lambda obj: obj.name) # Partition name is YYYYMM, so we can sort so
|
|
partitions[0].freeze() # Make a backup in /opt/clickhouse/shadow directory
|
|
partitions[0].drop() # Dropped partition
|
|
|
|
`Note`: system.parts stores information for all databases. To be correct, SystemPart model was designed to receive only parts belonging to the given database instance.
|
|
|
|
|
|
---
|
|
|
|
[<< Schema Migrations](schema_migrations.md) | [Table of Contents](toc.md) | [Contributing >>](contributing.md) |