mirror of https://github.com/citusdata/citus.git
support single shard tables for query generator
parent
8d8968ae63
commit
f857d7fbb4
|
@ -172,7 +172,7 @@ Tool supports following citus table types:
|
||||||
targetTables:
|
targetTables:
|
||||||
- Table:
|
- Table:
|
||||||
...
|
...
|
||||||
citusType: <one of (DISTRIBUTED || REFERENCE || POSTGRES)>
|
citusType: <one of (HASH_DISTRIBUTED || SINGLE_SHARD_DISTRIBUTED || REFERENCE || POSTGRES)>
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -111,8 +111,12 @@ def getMaxAllowedCountForTable(tableName):
|
||||||
return filtered[0].maxAllowedUseOnQuery
|
return filtered[0].maxAllowedUseOnQuery
|
||||||
|
|
||||||
|
|
||||||
def isTableDistributed(table):
|
def isTableHashDistributed(table):
|
||||||
return table.citusType == CitusType.DISTRIBUTED
|
return table.citusType == CitusType.HASH_DISTRIBUTED
|
||||||
|
|
||||||
|
|
||||||
|
def isTableSingleShardDistributed(table):
|
||||||
|
return table.citusType == CitusType.SINGLE_SHARD_DISTRIBUTED
|
||||||
|
|
||||||
|
|
||||||
def isTableReference(table):
|
def isTableReference(table):
|
||||||
|
|
|
@ -26,7 +26,7 @@ commonColName: id
|
||||||
targetTables:
|
targetTables:
|
||||||
- Table:
|
- Table:
|
||||||
name: dist
|
name: dist
|
||||||
citusType: DISTRIBUTED
|
citusType: HASH_DISTRIBUTED
|
||||||
maxAllowedUseOnQuery: 10
|
maxAllowedUseOnQuery: 10
|
||||||
rowCount: 10
|
rowCount: 10
|
||||||
nullRate: 0.1
|
nullRate: 0.1
|
||||||
|
@ -36,6 +36,18 @@ targetTables:
|
||||||
name: id
|
name: id
|
||||||
type: int
|
type: int
|
||||||
distinctCopyCount: 2
|
distinctCopyCount: 2
|
||||||
|
# - Table:
|
||||||
|
# name: single_dist
|
||||||
|
# citusType: SINGLE_SHARD_DISTRIBUTED
|
||||||
|
# maxAllowedUseOnQuery: 10
|
||||||
|
# rowCount: 10
|
||||||
|
# nullRate: 0.1
|
||||||
|
# duplicateRate: 0.1
|
||||||
|
# columns:
|
||||||
|
# - Column:
|
||||||
|
# name: id
|
||||||
|
# type: int
|
||||||
|
# distinctCopyCount: 2
|
||||||
- Table:
|
- Table:
|
||||||
name: ref
|
name: ref
|
||||||
citusType: REFERENCE
|
citusType: REFERENCE
|
||||||
|
|
|
@ -17,7 +17,10 @@ def getTableData():
|
||||||
dataGenerationSql += "\n"
|
dataGenerationSql += "\n"
|
||||||
|
|
||||||
# generate null rows
|
# generate null rows
|
||||||
if not table.citusType == CitusType.DISTRIBUTED:
|
if table.citusType not in (
|
||||||
|
CitusType.HASH_DISTRIBUTED,
|
||||||
|
CitusType.SINGLE_SHARD_DISTRIBUTED,
|
||||||
|
):
|
||||||
targetNullRows = int(table.rowCount * table.nullRate)
|
targetNullRows = int(table.rowCount * table.nullRate)
|
||||||
dataGenerationSql += _genNullData(table.name, targetNullRows)
|
dataGenerationSql += _genNullData(table.name, targetNullRows)
|
||||||
dataGenerationSql += "\n"
|
dataGenerationSql += "\n"
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
from config.config import getConfig, isTableDistributed, isTableReference
|
from config.config import (
|
||||||
|
getConfig,
|
||||||
|
isTableHashDistributed,
|
||||||
|
isTableReference,
|
||||||
|
isTableSingleShardDistributed,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def getTableDDLs():
|
def getTableDDLs():
|
||||||
|
@ -23,7 +28,7 @@ def _genTableDDL(table):
|
||||||
ddl += _genColumnDDL(table.columns[-1])
|
ddl += _genColumnDDL(table.columns[-1])
|
||||||
ddl += ");\n"
|
ddl += ");\n"
|
||||||
|
|
||||||
if isTableDistributed(table):
|
if isTableHashDistributed(table):
|
||||||
ddl += (
|
ddl += (
|
||||||
"SELECT create_distributed_table("
|
"SELECT create_distributed_table("
|
||||||
+ "'"
|
+ "'"
|
||||||
|
@ -34,6 +39,9 @@ def _genTableDDL(table):
|
||||||
+ ");"
|
+ ");"
|
||||||
)
|
)
|
||||||
ddl += "\n"
|
ddl += "\n"
|
||||||
|
if isTableSingleShardDistributed(table):
|
||||||
|
ddl += "SELECT create_distributed_table(" + "'" + table.name + "'" ",NULL);"
|
||||||
|
ddl += "\n"
|
||||||
elif isTableReference(table):
|
elif isTableReference(table):
|
||||||
ddl += "SELECT create_reference_table(" + "'" + table.name + "'" + ");"
|
ddl += "SELECT create_reference_table(" + "'" + table.name + "'" + ");"
|
||||||
ddl += "\n"
|
ddl += "\n"
|
||||||
|
|
|
@ -22,9 +22,10 @@ class RestrictOp(Enum):
|
||||||
|
|
||||||
|
|
||||||
class CitusType(Enum):
|
class CitusType(Enum):
|
||||||
DISTRIBUTED = 1
|
HASH_DISTRIBUTED = 1
|
||||||
REFERENCE = 2
|
SINGLE_SHARD_DISTRIBUTED = 2
|
||||||
POSTGRES = 3
|
REFERENCE = 3
|
||||||
|
POSTGRES = 4
|
||||||
|
|
||||||
|
|
||||||
class Table:
|
class Table:
|
||||||
|
|
Loading…
Reference in New Issue