Bladeren bron

初始化提交

luoguangyi 2 jaren geleden
bovenliggende
commit
6a12d29b6f
100 gewijzigde bestanden met toevoegingen van 4442 en 0 verwijderingen
  1. 60 0
      .gitignore
  2. 146 0
      dependency-reduced-pom.xml
  3. 80 0
      etc/1point3/def.json
  4. 79 0
      etc/1point3/def_delete_UsePutV.json
  5. 18 0
      etc/ReleaseNote.txt
  6. BIN
      etc/ZillionAgent原理-2.0.doc
  7. BIN
      etc/ZillionAgent原理.doc
  8. BIN
      etc/ZillionAgent强一致性&ES性能测试.xlsx
  9. BIN
      etc/ZillionAgent强一致性设计方案.vsdx
  10. BIN
      etc/ZillionAgent接口-二次条件.doc
  11. BIN
      etc/ZillionAgent接口-使用-1.7.1.doc
  12. BIN
      etc/ZillionAgent接口-使用-1.7.2.doc
  13. BIN
      etc/ZillionAgent接口-使用.doc
  14. BIN
      etc/ZillionAgent接口-查询-2.0.doc
  15. BIN
      etc/ZillionAgent接口-管理-2.0.doc
  16. BIN
      etc/ZillionAgent接口-管理.doc
  17. BIN
      etc/ZillionAgent设计方案.vsd
  18. BIN
      etc/Zillion升级说明-2.0.doc
  19. BIN
      etc/Zillion升级说明-2.1.doc
  20. 11 0
      etc/async_select.json
  21. 59 0
      etc/base1/FunctionalTest/table1_index_v.json
  22. 55 0
      etc/base1/def.json
  23. 74 0
      etc/base1/def_delete_UsePutV.json
  24. 19 0
      etc/base1/indexes.json
  25. 34 0
      etc/base1/performanceTest/table1.json
  26. 44 0
      etc/base1/performanceTest/table1_index.json
  27. 44 0
      etc/base1/performanceTest/table1_index_v.json
  28. 34 0
      etc/base1/performanceTest/table1_v.json
  29. 35 0
      etc/base1/performanceTest/table2.json
  30. 44 0
      etc/base1/performanceTest/table2_index.json
  31. 44 0
      etc/base1/performanceTest/table2_index_v.json
  32. 34 0
      etc/base1/performanceTest/table2_v.json
  33. 19 0
      etc/base1/regionTest.json
  34. BIN
      etc/base1/索引表查询性能测试.xlsx
  35. 29 0
      etc/base64.html
  36. 1 0
      etc/base64在线转换网址.txt
  37. 29 0
      etc/docker-kerberos/base64.html
  38. 5 0
      etc/docker-kerberos/core-site.xml
  39. 176 0
      etc/docker-kerberos/hbase-site.xml
  40. 5 0
      etc/docker-kerberos/hdfs-site.xml
  41. 8 0
      etc/docker-kerberos/jaas.conf
  42. 1 0
      etc/docker-kerberos/kerberos.txt
  43. 73 0
      etc/docker-kerberos/容器环境配置kerberos认证.txt
  44. 17 0
      etc/es/create.json
  45. 16 0
      etc/es/create1.json
  46. 108 0
      etc/es/selects.json
  47. 109 0
      etc/es/selects_strong_consistency_es.json
  48. 10 0
      etc/meta/ddl/level1_meta_ddl.json
  49. 6 0
      etc/meta/ddl/level1_sam_ddl_1.json
  50. 228 0
      etc/meta/def/level1_def_1.json
  51. 95 0
      etc/meta/def/level1_def_Flow.json
  52. 107 0
      etc/meta/def/level1_def_Loop.json
  53. 78 0
      etc/meta/def/level1_def_Route.json
  54. 12 0
      etc/meta/def/level1_def_Variant1.json
  55. 50 0
      etc/meta/def/level1_def_Variant2.json
  56. 49 0
      etc/meta/def/level1_def_energydata.json
  57. 6 0
      etc/meta/dml/level1_meta_criteriavalue.json
  58. 13 0
      etc/meta/dml/level1_meta_delete.json
  59. 13 0
      etc/meta/dml/level1_meta_insert.json
  60. 7 0
      etc/meta/dml/level1_meta_result.json
  61. 3 0
      etc/meta/dml/level1_meta_returncolumnflag.json
  62. 23 0
      etc/meta/dml/level1_meta_select.json
  63. 16 0
      etc/meta/dml/level1_meta_update.json
  64. 74 0
      etc/meta/dml/level1_sam_delete1.json
  65. 23 0
      etc/meta/dml/level1_sam_insert1.json
  66. 95 0
      etc/meta/dml/level1_sam_select1.json
  67. 83 0
      etc/meta/dml/level1_sam_update1.json
  68. 23 0
      etc/meta/meta/level1.json
  69. 36 0
      etc/meta/meta/level1_Flow.json
  70. 43 0
      etc/meta/meta/level1_Loop.json
  71. 25 0
      etc/meta/meta/level1_Route.json
  72. 23 0
      etc/meta/meta/level1_Structure.json
  73. 23 0
      etc/meta/meta/level1_Structure_NV.json
  74. 16 0
      etc/meta/meta/level1_Topo.json
  75. 13 0
      etc/meta/meta/level1_Tree.json
  76. 36 0
      etc/meta/meta/level1_Variant.json
  77. 139 0
      etc/meta/sam/level1_sam_1.json
  78. 108 0
      etc/meta/sam/level1_sam_Flow.json
  79. 74 0
      etc/meta/sam/level1_sam_Loop.json
  80. 32 0
      etc/meta/sam/level1_sam_Route.json
  81. 14 0
      etc/meta/sam/level1_sam_Variant1.json
  82. 17 0
      etc/meta/sam/level1_sam_Variant2.json
  83. 17 0
      etc/meta/sam/level1_sam_energydata.json
  84. 98 0
      etc/project_person/def.json
  85. 27 0
      etc/project_person/query1.json
  86. 16 0
      etc/project_person/query2.json
  87. 10 0
      etc/project_person/query3.json
  88. 3 0
      etc/result_failure.json
  89. 3 0
      etc/result_success.json
  90. 62 0
      etc/reverse/def.json
  91. 62 0
      etc/section1/def.json
  92. 218 0
      etc/section2/def.json
  93. 158 0
      etc/section3/def.json
  94. 94 0
      etc/section4/def.json
  95. 133 0
      etc/section5/def.json
  96. 10 0
      etc/select.json
  97. 147 0
      etc/selects.json
  98. 237 0
      etc/selects_OrderBy.json
  99. 24 0
      etc/selects_monitor.json
  100. 0 0
      etc/selects_notnull.json

+ 60 - 0
.gitignore

@@ -0,0 +1,60 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+.settings/
+.gradle/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/
+
+### JRebel ###
+rebel.xml
+rebel-remote.xml
+
+### Others ###
+*.log
+*/log
+hs_err_pid*
+
+# Package Files #
+*.jar
+*.war
+*.ear
+*.zip
+*.tar.gz
+*.rar
+*.swp
+*.log
+*.ctxt
+
+
+spring-cloud-alibaba-examples/
+iot-admin-server/
+cloud/nacos/
+demo/basic-demo/paas-test/
+demo/basic-demo/paas-login/

+ 146 - 0
dependency-reduced-pom.xml

@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.sagacloud</groupId>
+  <artifactId>zillion-util</artifactId>
+  <version>2.3.0.0</version>
+  <build>
+    <resources>
+      <resource>
+        <targetPath>${project.build.directory}/classes</targetPath>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <defaultLibBundleDir />
+          <source>1.8</source>
+          <target>1.8</target>
+          <encoding>gbk</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <excludes>
+            <exclude>*.properties</exclude>
+            <exclude>*.xml</exclude>
+            <exclude>*.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <id>copy</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.1.1</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <relocations>
+                <relocation>
+                  <pattern>com.google.common</pattern>
+                  <shadedPattern>shade.com.google.common</shadedPattern>
+                </relocation>
+              </relocations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>dev</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-shade-plugin</artifactId>
+            <executions>
+              <execution>
+                <phase>none</phase>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+  <repositories>
+    <repository>
+      <releases />
+      <snapshots />
+      <id>SagaCloud</id>
+      <name>SagaCloud</name>
+      <url>http://47.93.33.207:8082/repository/SagaCloud/</url>
+    </repository>
+    <repository>
+      <id>alimaven</id>
+      <name>aliyun maven</name>
+      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
+    </repository>
+    <repository>
+      <id>mvnrepository</id>
+      <url>https://mvnrepository.com/</url>
+    </repository>
+    <repository>
+      <id>sonatype-nexus-snapshots</id>
+      <name>Sonatype Nexus Snapshots</name>
+      <url>http://oss.sonatype.org/content/repositories/snapshots</url>
+    </repository>
+  </repositories>
+  <dependencies>
+    <dependency>
+      <groupId>jdk.tools</groupId>
+      <artifactId>jdk.tools</artifactId>
+      <version>1.8</version>
+      <scope>system</scope>
+      <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
+    </dependency>
+  </dependencies>
+  <distributionManagement>
+    <repository>
+      <id>SagaCloudRelease</id>
+      <name>User Project Release</name>
+      <url>http://47.93.33.207:8082/repository/SagaCloudRelease/</url>
+    </repository>
+    <snapshotRepository>
+      <id>SagaCloudRelease</id>
+      <name>User Project SNAPSHOTS</name>
+      <url>http://47.93.33.207:8082/repository/SagaCloudSnapshot/</url>
+    </snapshotRepository>
+  </distributionManagement>
+  <properties>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
+  </properties>
+</project>

+ 80 - 0
etc/1point3/def.json

@@ -0,0 +1,80 @@
+{
+	"Columns":[
+		{
+			"Name":"KeyLong",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"KeyString",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"KeyBoolean",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"KeyDouble",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"ValueLong",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"ValueString",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"ValueBoolean",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"ValueDouble",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"ValueBytes",
+			"Multiplicity":"1",
+			"Type":"Bytes"
+		}
+		
+	],
+	"Key":[
+		"KeyLong",
+		"KeyString",
+		"KeyBoolean",
+		"KeyDouble"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"KeyDouble",
+				"KeyBoolean",
+				"KeyString",
+				"KeyLong"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"KeyLong",
+				"KeyString",
+				"ValueLong",
+				"ValueString"
+			]
+			
+		}
+		
+	]
+	
+}

+ 79 - 0
etc/1point3/def_delete_UsePutV.json

@@ -0,0 +1,79 @@
+{
+	"delete_UsePutV":false,
+	"Columns":[
+		{
+			"Name":"KeyLong",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"KeyString",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"KeyBoolean",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"KeyDouble",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"ValueLong",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"ValueString",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"ValueBoolean",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"ValueDouble",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"ValueBytes",
+			"Multiplicity":"1",
+			"Type":"Bytes"
+		}
+		
+	],
+	"Key":[
+		"KeyLong",
+		"KeyString",
+		"KeyBoolean",
+		"KeyDouble"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"KeyDouble",
+				"KeyBoolean",
+				"KeyString"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"KeyBoolean",
+				"KeyString",
+				"KeyLong"
+			]
+			
+		}
+		
+	]
+	
+}

+ 18 - 0
etc/ReleaseNote.txt

@@ -0,0 +1,18 @@
+1.2		42
+
+1.3		177
+表类型默认改为index_data,数据表和索引表均存储所有信息
+表类型增加all_column
+
+1.4		256
+增加查询方式
+
+1.5		268
+表类型增加split_month
+表结构增加region_keys
+
+1.6		364
+解决一个连接高并发的bug
+
+1.7		435
+表类型增加split_year

BIN
etc/ZillionAgent原理-2.0.doc


BIN
etc/ZillionAgent原理.doc


BIN
etc/ZillionAgent强一致性&ES性能测试.xlsx


BIN
etc/ZillionAgent强一致性设计方案.vsdx


BIN
etc/ZillionAgent接口-二次条件.doc


BIN
etc/ZillionAgent接口-使用-1.7.1.doc


BIN
etc/ZillionAgent接口-使用-1.7.2.doc


BIN
etc/ZillionAgent接口-使用.doc


BIN
etc/ZillionAgent接口-查询-2.0.doc


BIN
etc/ZillionAgent接口-管理-2.0.doc


BIN
etc/ZillionAgent接口-管理.doc


BIN
etc/ZillionAgent设计方案.vsd


BIN
etc/Zillion升级说明-2.0.doc


BIN
etc/Zillion升级说明-2.1.doc


+ 11 - 0
etc/async_select.json

@@ -0,0 +1,11 @@
+
+	{
+		"QueryType": "select",
+		"Database": "aa",
+		"Datatable": "bb",
+		"Criteria": {
+			"colmn2": {"in":["a","b"]}
+		},
+		"PageSize":10,
+		"Timeout":30000
+	}

+ 59 - 0
etc/base1/FunctionalTest/table1_index_v.json

@@ -0,0 +1,59 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table1",
+	"Definition":{
+		"delete_UsePutV":true,
+		"table_type":"all_column",
+		"Columns":[
+			{
+				"Name":"Long1",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"String1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"Long2",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"String2",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"Long3",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"String3",
+				"Multiplicity":"1",
+				"Type":"String"
+			}
+		],
+		"Key":[
+			"Long1",
+			"String1",
+			"Long2",
+			"String2"
+		],
+		"Indexes":[
+			{
+				"Name":"index_1",
+				"Columns":[
+					"Long2",
+					"String2",
+					"Long1",
+					"String1"
+				]
+			}
+		]
+		
+	}
+}

+ 55 - 0
etc/base1/def.json

@@ -0,0 +1,55 @@
+{
+	"Columns": [
+		{
+			"Name": "KeyLong",
+			"Type": "Long"
+		},
+		{
+			"Name": "KeyString",
+			"Type": "String(10)"
+		},
+		{
+			"Name": "KeyBoolean",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "ValueLong",
+			"Type": "Long"
+		},
+		{
+			"Name": "ValueString",
+			"Type": "String(10)"
+		},
+		{
+			"Name": "ValueBoolean",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "ValueDouble",
+			"Type": "Double"
+		}
+	],
+	"Key": [
+		"KeyLong",
+		"KeyString",
+		"KeyBoolean"
+	],
+	"Indexes": [
+		{
+			"Name": "index_1",
+			"Columns": [
+				"KeyString",
+				"KeyBoolean",
+				"KeyLong"
+			]
+		},
+		{
+			"Name": "index_2",
+			"Columns": [
+				"KeyBoolean",
+				"KeyLong",
+				"KeyString"
+			]
+		}
+	]
+}

+ 74 - 0
etc/base1/def_delete_UsePutV.json

@@ -0,0 +1,74 @@
+{
+	"delete_UsePutV": false,
+	"Columns": [
+		{
+			"Name": "KeyLong",
+			"Multiplicity": "1",
+			"Type": "Long"
+		},
+		{
+			"Name": "KeyString",
+			"Multiplicity": "1",
+			"Type": "String(10)"
+		},
+		{
+			"Name": "KeyBoolean",
+			"Multiplicity": "1",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "KeyDouble",
+			"Multiplicity": "1",
+			"Type": "Double"
+		},
+		{
+			"Name": "ValueLong",
+			"Multiplicity": "1",
+			"Type": "Long"
+		},
+		{
+			"Name": "ValueString",
+			"Multiplicity": "1",
+			"Type": "String(10)"
+		},
+		{
+			"Name": "ValueBoolean",
+			"Multiplicity": "1",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "ValueDouble",
+			"Multiplicity": "1",
+			"Type": "Double"
+		},
+		{
+			"Name": "ValueBytes",
+			"Multiplicity": "1",
+			"Type": "Bytes"
+		}
+	],
+	"Key": [
+		"KeyLong",
+		"KeyString",
+		"KeyBoolean",
+		"KeyDouble"
+	],
+	"Indexes": [
+		{
+			"Name": "index_1",
+			"Columns": [
+				"KeyDouble",
+				"KeyBoolean",
+				"KeyString"
+			]
+		},
+		{
+			"Name": "index_2",
+			"Columns": [
+				"KeyBoolean",
+				"KeyString",
+				"KeyLong"
+			]
+		}
+	]
+}

+ 19 - 0
etc/base1/indexes.json

@@ -0,0 +1,19 @@
+[
+	{
+		"Name":"index_1_new",
+		"Columns":[
+			"ValueDouble"
+		]
+		
+	},
+	{
+		"Name":"index_2_new",
+		"Columns":[
+			"ValueBoolean",
+			"ValueString",
+			"ValueLong"
+		]
+		
+	}
+	
+]

+ 34 - 0
etc/base1/performanceTest/table1.json

@@ -0,0 +1,34 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table1",
+	"Definition":{
+		"delete_UsePutV":false,
+		"Columns":[
+			{
+				"Name":"KeyLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"KeyDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			},
+			{
+				"Name":"ValueLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"ValueDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			}
+		],
+		"Key":[
+			"KeyLong",
+			"KeyDouble"
+		]
+	}
+}

+ 44 - 0
etc/base1/performanceTest/table1_index.json

@@ -0,0 +1,44 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table1",
+	"Definition":{
+		"delete_UsePutV":false,
+		"Columns":[
+			{
+				"Name":"KeyLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"KeyDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			},
+			{
+				"Name":"ValueLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"ValueDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			}
+		],
+		"Key":[
+			"KeyLong",
+			"KeyDouble"
+		],
+		"Indexes":[
+			{
+				"Name":"index_1",
+				"Columns":[
+					"KeyDouble",
+					"KeyLong"
+				]
+			}
+		]
+		
+	}
+}

+ 44 - 0
etc/base1/performanceTest/table1_index_v.json

@@ -0,0 +1,44 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table1",
+	"Definition":{
+		"delete_UsePutV":true,
+		"Columns":[
+			{
+				"Name":"KeyLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"KeyDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			},
+			{
+				"Name":"ValueLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"ValueDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			}
+		],
+		"Key":[
+			"KeyLong",
+			"KeyDouble"
+		],
+		"Indexes":[
+			{
+				"Name":"index_1",
+				"Columns":[
+					"KeyDouble",
+					"KeyLong"
+				]
+			}
+		]
+		
+	}
+}

+ 34 - 0
etc/base1/performanceTest/table1_v.json

@@ -0,0 +1,34 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table1",
+	"Definition":{
+		"delete_UsePutV":true,
+		"Columns":[
+			{
+				"Name":"KeyLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"KeyDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			},
+			{
+				"Name":"ValueLong",
+				"Multiplicity":"1",
+				"Type":"Long"
+			},
+			{
+				"Name":"ValueDouble",
+				"Multiplicity":"1",
+				"Type":"Double"
+			}
+		],
+		"Key":[
+			"KeyLong",
+			"KeyDouble"
+		]
+	}
+}

+ 35 - 0
etc/base1/performanceTest/table2.json

@@ -0,0 +1,35 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table2",
+	"Definition":{
+		"delete_UsePutV":false,
+		"Columns":[
+			{
+				"Name":"KeyString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"KeyString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			}
+		],
+		"Key":[
+			"KeyString1",
+			"KeyString2"
+		]
+		
+	}
+}

+ 44 - 0
etc/base1/performanceTest/table2_index.json

@@ -0,0 +1,44 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table2",
+	"Definition":{
+		"delete_UsePutV":false,
+		"Columns":[
+			{
+				"Name":"KeyString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"KeyString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			}
+		],
+		"Key":[
+			"KeyString1",
+			"KeyString2"
+		],
+		"Indexes":[
+			{
+				"Name":"index_1",
+				"Columns":[
+					"KeyString2",
+					"KeyString1"
+				]
+			}
+		]
+		
+	}
+}

+ 44 - 0
etc/base1/performanceTest/table2_index_v.json

@@ -0,0 +1,44 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table2",
+	"Definition":{
+		"delete_UsePutV":true,
+		"Columns":[
+			{
+				"Name":"KeyString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"KeyString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			}
+		],
+		"Key":[
+			"KeyString1",
+			"KeyString2"
+		],
+		"Indexes":[
+			{
+				"Name":"index_1",
+				"Columns":[
+					"KeyString2",
+					"KeyString1"
+				]
+			}
+		]
+		
+	}
+}

+ 34 - 0
etc/base1/performanceTest/table2_v.json

@@ -0,0 +1,34 @@
+{
+	"QueryType":"table_create",
+	"Database":"db_test",
+	"Datatable":"table2",
+	"Definition":{
+		"delete_UsePutV":true,
+		"Columns":[
+			{
+				"Name":"KeyString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"KeyString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString1",
+				"Multiplicity":"1",
+				"Type":"String"
+			},
+			{
+				"Name":"ValueString2",
+				"Multiplicity":"1",
+				"Type":"String"
+			}
+		],
+		"Key":[
+			"KeyString1",
+			"KeyString2"
+		]
+	}
+}

+ 19 - 0
etc/base1/regionTest.json

@@ -0,0 +1,19 @@
+{
+	"Columns":[
+		{
+			"Name":"id",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"name",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		}
+		
+	],
+	"Key":[
+		"id"
+	]
+	
+}

BIN
etc/base1/索引表查询性能测试.xlsx


+ 29 - 0
etc/base64.html

@@ -0,0 +1,29 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="description" content="在线Base64生成转换小工具,可以实现任意文件转Base64 Data-URI编码,文件往页面中一拖即可。" />
+<meta name="keywords" content="base64, FileReader, readAsDataURL, 文件" />
+<meta name="author" content="menglu" />
+<title>任意文件转base64</title>
+<style>
+body { word-break: break-all; margin: 0 1em; min-height: 100vh; font-family: Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New", monospace; overflow: hidden;}
+.empty::before{position: absolute; font-size: 50px; content: '任意文件\A拖到这里'; white-space: pre; left: 50%; top: 50%; transform: translate(-50%,-50%); color: gray;}
+</style>
+</head>
+<body class="empty">
+<script>
+window.addEventListener("dragenter", function(event) { event.preventDefault(); }, false);
+window.addEventListener("dragover", function(event) { event.preventDefault(); }, false);
+window.addEventListener("drop", function(event) {
+    var reader = new FileReader();
+    reader.onload = function(e) {
+      document.body.insertAdjacentHTML("afterBegin", '<p>' + e.target.result + '</p>');
+	  	document.body.classList.remove('empty');
+    };
+    reader.readAsDataURL(event.dataTransfer.files[0]);
+		event.preventDefault();
+	}, false);
+</script>
+</body>
+</html>

+ 1 - 0
etc/base64在线转换网址.txt

@@ -0,0 +1 @@
+https://www.zhangxinxu.com/sp/base64.html

+ 29 - 0
etc/docker-kerberos/base64.html

@@ -0,0 +1,29 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="description" content="在线Base64生成转换小工具,可以实现任意文件转Base64 Data-URI编码,文件往页面中一拖即可。" />
+<meta name="keywords" content="base64, FileReader, readAsDataURL, 文件" />
+<meta name="author" content="menglu" />
+<title>任意文件转base64</title>
+<style>
+body { word-break: break-all; margin: 0 1em; min-height: 100vh; font-family: Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New", monospace; overflow: hidden;}
+.empty::before{position: absolute; font-size: 50px; content: '任意文件\A拖到这里'; white-space: pre; left: 50%; top: 50%; transform: translate(-50%,-50%); color: gray;}
+</style>
+</head>
+<body class="empty">
+<script>
+window.addEventListener("dragenter", function(event) { event.preventDefault(); }, false);
+window.addEventListener("dragover", function(event) { event.preventDefault(); }, false);
+window.addEventListener("drop", function(event) {
+    var reader = new FileReader();
+    reader.onload = function(e) {
+      document.body.insertAdjacentHTML("afterBegin", '<p>' + e.target.result + '</p>');
+	  	document.body.classList.remove('empty');
+    };
+    reader.readAsDataURL(event.dataTransfer.files[0]);
+		event.preventDefault();
+	}, false);
+</script>
+</body>
+</html>

+ 5 - 0
etc/docker-kerberos/core-site.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration>
+
+</configuration>

+ 176 - 0
etc/docker-kerberos/hbase-site.xml

@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration>
+	<!-- HBase,MySQL,Mix,default is HBase -->
+	<property>
+		<name>zillion.database_type</name>
+		<value>HBase</value>
+	</property>
+	
+	<!--
+	-->
+<property>
+	<name>zillion.jaas.conf</name>
+	<value>/usr/local/etc/jaas.conf</value>
+</property>
+<property>
+	<name>zillion.krb5.conf</name>
+	<value>/usr/local/etc/krb5.conf</value>
+</property>
+<property>
+	<name>zillion.kerberos.txt</name>
+	<value>/usr/local/etc/kerberos.txt</value>
+</property>
+<property>
+	<name>zillion.kerberos.keytab</name>
+	<value>/usr/local/etc/kerberos.keytab</value>
+</property>
+
+	<property>
+		<name>hbase.cluster.distributed</name>
+		<value>true</value>
+	</property>
+	<property>
+		<name>hbase.zookeeper.quorum</name>
+		<value>node1</value>
+	</property>
+	<property>
+		<name>zookeeper.session.timeout</name>
+		<value>300000</value>
+	</property>
+	<property>
+		<name>hbase.rpc.timeout</name>
+		<value>900000</value>
+	</property>
+	<property>
+		<name>hbase.client.scanner.timeout.period</name>
+		<value>900000</value>
+	</property>
+	
+<!--
+-->
+<property>
+        <name>hbase.security.authentication</name>
+        <value>kerberos</value>
+</property>
+<property>
+    <name>hbase.rpc.engine</name>
+    <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
+</property>
+<property>
+    <name>hbase.coprocessor.region.classes</name>
+    <value>org.apache.hadoop.hbase.security.token.TokenProvider</value>
+</property>
+<property>
+        <name>hbase.master.kerberos.principal</name>
+        <value>hadoop/_HOST@HADOOP.COM</value>
+</property>
+<property>
+        <name>hbase.master.keytab.file</name>
+        <value>/usr/local/etc/kerberos.keytab</value>
+</property>
+<property>
+        <name>hbase.regionserver.kerberos.principal</name>
+        <value>hadoop/_HOST@HADOOP.COM</value>
+</property>
+<property>
+        <name>hbase.regionserver.keytab.file</name>
+        <value>/usr/local/etc/kerberos.keytab</value>
+</property>
+
+<property>
+        <name>hadoop.security.authorization</name>
+        <value>true</value>
+</property>
+<property>
+        <name>hadoop.security.authentication</name>
+        <value>kerberos</value>
+</property>
+<property>
+        <name>keytab.file</name>
+        <value>/usr/local/etc/kerberos.keytab</value>
+</property>
+<property>
+        <name>kerberos.principal</name>
+        <value>hadoop/_HOST@HADOOP.COM</value>
+</property>
+
+	<property>
+		<name>Redis.enable</name>
+		<value>false</value>
+	</property>
+	<property>
+		<name>Redis.address</name>
+		<value>192.168.3.222:6379</value>
+	</property>
+	<property>
+		<name>Redis.password</name>
+		<value>foobared</value>
+	</property>
+	<property>
+		<name>ElasticSearch.enable</name>
+		<value>false</value>
+	</property>
+	<property>
+		<name>ElasticSearch.hostname</name>
+		<value>192.168.3.221</value>
+	</property>
+	<property>
+		<name>ElasticSearch.port</name>
+		<value>9200</value>
+	</property>
+	<property>
+		<name>ElasticSearch.scheme</name>
+		<value>http</value>
+	</property>
+
+	<property>
+		<name>MySQL.zookeeper.quorum</name>
+		<value>localhost</value>
+	</property>
+	<property>
+		<name>MySQL.zookeeper.session.timeout</name>
+		<value>300000</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.jdbcUrl</name>
+		<value>jdbc:mysql://localhost:3306/?useSSL=FALSE&amp;serverTimezone=GMT</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.user</name>
+		<value>pbsage</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.password</name>
+		<value>123456</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.acquireIncrement</name>
+		<value>10</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.idleConnectionTestPeriod</name>
+		<value>60</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.initialPoolSize</name>
+		<value>10</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.maxIdleTime</name>
+		<value>60</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.maxPoolSize</name>
+		<value>50</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.maxStatements</name>
+		<value>100</value>
+	</property>
+	<property>
+		<name>MySQL.c3p0.minPoolSize</name>
+		<value>10</value>
+	</property>
+
+</configuration>

+ 5 - 0
etc/docker-kerberos/hdfs-site.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration>
+
+</configuration>

+ 8 - 0
etc/docker-kerberos/jaas.conf

@@ -0,0 +1,8 @@
+Client {
+  com.sun.security.auth.module.Krb5LoginModule required
+  useKeyTab=true
+  keyTab="/usr/local/etc/kerberos.keytab"
+  useTicketCache=false
+  principal="hadoop/node2@HADOOP.COM";
+};
+

File diff suppressed because it is too large
+ 1 - 0
etc/docker-kerberos/kerberos.txt


+ 73 - 0
etc/docker-kerberos/容器环境配置kerberos认证.txt

@@ -0,0 +1,73 @@
+Zillion-2.3.3.333版本生效
+
+条件
+1	提供用户名(principal)
+2	提供秘钥文件(keytab后缀)
+3	提供配置文件krb5.conf
+4	提供core-site.xml(非必需)、hdfs-site.xml(非必需)、hbase-site.xml(必需)
+
+步骤
+1	准备kerberos.txt文件:将keytab文件拖拽到base64.html,将网页内容复制并保存文件kerberos.txt
+
+2	准备jaas.conf文件:内容示例,其中principal改为提供的用户名(principal)
+Client {
+  com.sun.security.auth.module.Krb5LoginModule required
+  useKeyTab=true
+  keyTab="/usr/local/etc/kerberos.keytab"
+  useTicketCache=false
+  principal="hadoop/node2@HADOOP.COM";
+};
+
+3	准备xml文件:hbase-site.xml使用提供的;如果没有提供core-site.xml、hdfs-site.xml文件,请使用以下内容
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration>
+</configuration>
+
+4	修改hbase-site.xml文件:添加以下内容
+	<property>
+		<name>zillion.database_type</name>
+		<value>HBase</value>
+	</property>
+<property>
+	<name>zillion.jaas.conf</name>
+	<value>/usr/local/etc/jaas.conf</value>
+</property>
+<property>
+	<name>zillion.krb5.conf</name>
+	<value>/usr/local/etc/krb5.conf</value>
+</property>
+<property>
+	<name>zillion.kerberos.txt</name>
+	<value>/usr/local/etc/kerberos.txt</value>
+</property>
+<property>
+	<name>zillion.kerberos.keytab</name>
+	<value>/usr/local/etc/kerberos.keytab</value>
+</property>
+
+5	修改hbase-site.xml文件:如果没有keytab.file部分或者kerberos.principal部分,请添加,示例如下,其中kerberos.principal改为提供的用户名(principal)
+<property>
+        <name>keytab.file</name>
+        <value>/usr/local/etc/kerberos.keytab</value>
+</property>
+<property>
+        <name>kerberos.principal</name>
+        <value>hadoop/_HOST@HADOOP.COM</value>
+</property>
+
+6	修改core-site.xml、hdfs-site.xml、hbase-site.xml:
+	a	将所有name以keytab.file结尾部分的value改成/usr/local/etc/kerberos.keytab
+	b	将所有name以kerberos.principal结尾部分的value改成提供的用户名(principal)
+
+7	将以上文件core-site.xml、hdfs-site.xml、hbase-site.xml、krb5.conf、jaas.conf、kerberos.txt分别映射到容器的以下路径
+    /usr/local/etc/core-site.xml
+    /usr/local/etc/hdfs-site.xml
+    /usr/local/etc/hbase-site.xml
+    /usr/local/etc/krb5.conf
+    /usr/local/etc/jaas.conf
+    /usr/local/etc/kerberos.txt
+    
+8	注意配置容器的hosts
+
+9	根据实际情况(比如我们自己部署的kerberos),可能还需要配置容器的hostname

+ 17 - 0
etc/es/create.json

@@ -0,0 +1,17 @@
+{
+	"properties": {
+		"user": {
+			"type": "text",
+			"fielddata": true
+		},
+		"shenggao": {
+			"type": "integer"
+		},
+		"tizhong": {
+			"type": "double"
+		},
+		"postDate": {
+			"type": "date"
+		}
+	}
+}

+ 16 - 0
etc/es/create1.json

@@ -0,0 +1,16 @@
+{
+	"properties": {
+		"user": {
+			"type": "keyword"
+		},
+		"shenggao": {
+			"type": "integer"
+		},
+		"tizhong": {
+			"type": "double"
+		},
+		"postDate": {
+			"type": "date"
+		}
+	}
+}

+ 108 - 0
etc/es/selects.json

@@ -0,0 +1,108 @@
+[
+	{
+		"QueryType": "table_drop",
+		"Database": "db_test",
+		"Datatable": "table_es"
+	},
+	{
+		"QueryType": "table_create",
+		"Database": "db_test",
+		"Datatable": "table_es",
+		"Definition": {
+			"elastic_search": true,
+			"Columns": [
+				{
+					"Name": "KeyBoolean",
+					"Type": "Boolean"
+				},
+				{
+					"Name": "KeyLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "KeyString",
+					"Type": "String"
+				},
+				{
+					"Name": "ValueBoolean",
+					"Type": "Boolean"
+				},
+				{
+					"Name": "ValueLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "ValueString",
+					"Type": "String"
+				}
+			],
+			"Key": [
+				"KeyBoolean",
+				"KeyLong",
+				"KeyString"
+			],
+			"Indexes": [
+				{
+					"Name": "index_0",
+					"Columns": [
+						"KeyString",
+						"KeyLong",
+						"KeyBoolean"
+					]
+				},
+				{
+					"Name": "index_1",
+					"Columns": [
+						"ValueBoolean"
+					]
+				},
+				{
+					"Name": "index_2",
+					"Columns": [
+						"ValueLong"
+					]
+				},
+				{
+					"Name": "index_3",
+					"Columns": [
+						"ValueString"
+					]
+				}
+			]
+		}
+	},
+	{
+		"QueryType": "batch_insert",
+		"Database": "db_test",
+		"Datatable": "table_es",
+		"InsertObjects": [
+			{
+				"KeyLong": 1,
+				"KeyString": "a",
+				"KeyBoolean": false,
+				"ValueLong": 2,
+				"ValueString": "b",
+				"ValueBoolean": false
+			},
+			{
+				"KeyLong": 1,
+				"KeyString": "a",
+				"KeyBoolean": true,
+				"ValueLong": 1,
+				"ValueString": "b",
+				"ValueBoolean": false
+			}
+		]
+	},
+	{
+		"QueryType": "select",
+		"Database": "db_test",
+		"Datatable": "table_es",
+		"Hint": "index_0",
+		"Criteria": {
+			"KeyLong": 1,
+			"KeyString": "a",
+			"KeyBoolean": false
+		}
+	}
+]

+ 109 - 0
etc/es/selects_strong_consistency_es.json

@@ -0,0 +1,109 @@
+[
+	{
+		"QueryType": "table_drop",
+		"Database": "db_test",
+		"Datatable": "table_strong_consistency_es"
+	},
+	{
+		"QueryType": "table_create",
+		"Database": "db_test",
+		"Datatable": "table_strong_consistency_es",
+		"Definition": {
+			"strong_consistency": true,
+			"elastic_search": true,
+			"Columns": [
+				{
+					"Name": "KeyBoolean",
+					"Type": "Boolean"
+				},
+				{
+					"Name": "KeyLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "KeyString",
+					"Type": "String"
+				},
+				{
+					"Name": "ValueBoolean",
+					"Type": "Boolean"
+				},
+				{
+					"Name": "ValueLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "ValueString",
+					"Type": "String"
+				}
+			],
+			"Key": [
+				"KeyBoolean",
+				"KeyLong",
+				"KeyString"
+			],
+			"Indexes": [
+				{
+					"Name": "index_0",
+					"Columns": [
+						"KeyString",
+						"KeyLong",
+						"KeyBoolean"
+					]
+				},
+				{
+					"Name": "index_1",
+					"Columns": [
+						"ValueBoolean"
+					]
+				},
+				{
+					"Name": "index_2",
+					"Columns": [
+						"ValueLong"
+					]
+				},
+				{
+					"Name": "index_3",
+					"Columns": [
+						"ValueString"
+					]
+				}
+			]
+		}
+	},
+	{
+		"QueryType": "batch_insert",
+		"Database": "db_test",
+		"Datatable": "table_strong_consistency_es",
+		"InsertObjects": [
+			{
+				"KeyLong": 1,
+				"KeyString": "a",
+				"KeyBoolean": false,
+				"ValueLong": 2,
+				"ValueString": "b",
+				"ValueBoolean": false
+			},
+			{
+				"KeyLong": 1,
+				"KeyString": "a",
+				"KeyBoolean": true,
+				"ValueLong": 1,
+				"ValueString": "b",
+				"ValueBoolean": false
+			}
+		]
+	},
+	{
+		"QueryType": "select",
+		"Database": "db_test",
+		"Datatable": "table_strong_consistency_es",
+		"Hint": "index_0",
+		"Criteria": {
+			"KeyLong": 1,
+			"KeyString": "a",
+			"KeyBoolean": false
+		}
+	}
+]

+ 10 - 0
etc/meta/ddl/level1_meta_ddl.json

@@ -0,0 +1,10 @@
+{
+	"QueryType":"create|drop|index_create|index_drop",
+	"Database":"[a-z_][a-z_0-9]*",
+	"Datatable":"[a-z_][a-z_0-9]*",
+	"IndexName":"[a-z_][a-z_0-9]*",
+	"IndexColumns":[
+		"[a-z_][a-z_0-9]*"
+	],
+	"Definition":"\\level1_def|\\StandardDefinition"
+}

+ 6 - 0
etc/meta/ddl/level1_sam_ddl_1.json

@@ -0,0 +1,6 @@
+{
+	"QueryType":"create",
+	"Database":"database_1",
+	"Datatable":"datatable_1",
+	"Definition":"StandardDefinition_1"
+}

+ 228 - 0
etc/meta/def/level1_def_1.json

@@ -0,0 +1,228 @@
+{
+	"Columns":[
+		{
+			"Name":"BuildingSign",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"BuildingName",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"desc",
+			"Multiplicity":"1",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"HVACType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"HeatingType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"OtherInfo",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"InfoName",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"InfoContent",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"InfoName"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"InfoName"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				],
+				"Key":[
+					
+				],
+				"Indexes":[
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"contacts",
+			"Multiplicity":"0..n",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"ContactID",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactName",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactAddress",
+						"Multiplicity":"1",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"City",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"Street",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								
+							],
+							"Indexes":[
+								
+							]
+							
+						}
+						
+					},
+					{
+						"Name":"BankCard",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"CardNumber",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"BankName",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"CardNumber"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"CardNumber"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				],
+				"Key":[
+					"ContactID"
+				],
+				"Indexes":[
+					{
+						"Name":"index_1",
+						"Columns":[
+							"ContactName"
+						]
+						
+					}
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"EnergyItemTree",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Tree",
+				"TreeNodeId":"Long",
+				"TreeNodeRef":[
+					{
+						"Name":"Sign1",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"Sign2",
+						"Multiplicity":"1",
+						"Type":"String"
+					}
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"distribution",
+			"Multiplicity":"0..n",
+			"Type":{
+				"Type":"Topo",
+				"StartNodeId":"String",
+				"EndNodeId":"String",
+				"Edge":"Long",
+				"EdgeId":"String",
+				"EdgePropertyValue":"String"
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"BuildingSign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"BuildingName"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"BuildingName",
+				"Area"
+			]
+			
+		}
+		
+	]
+}

+ 95 - 0
etc/meta/def/level1_def_Flow.json

@@ -0,0 +1,95 @@
+{
+	"Columns":[
+		{
+			"Name":"FlowSign",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"FlowName",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"FlowContent",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Flow",
+				"Node":{
+					"NodeSign":"String",
+					"NodeName":"String",
+					"NodeType":"String",
+					"NodeValue":"String",
+					"NodeRef":[
+						{
+							"Name":"RefType",
+							"Multiplicity":"1",
+							"Type":"String"
+						},
+						{
+							"Name":"BuildingSign",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"ASign",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"BSign",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						}
+						
+					]
+					
+				},
+				"Line":{
+					"LineSign":"String",
+					"LineName":"String",
+					"LineStart":"String",
+					"LineStartPort":"Long",
+					"LineEnd":"String",
+					"LineEndPort":"Long",
+					"LineValue":"String",
+					"LineRef":[
+						{
+							"Name":"RefType",
+							"Multiplicity":"1",
+							"Type":"String"
+						},
+						{
+							"Name":"BuildingSign",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"DocumentSign",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						}
+						
+					]
+					
+				}
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"FlowSign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"FlowName"
+			]
+			
+		}
+		
+	]
+}

+ 107 - 0
etc/meta/def/level1_def_Loop.json

@@ -0,0 +1,107 @@
+{
+	"Columns":[
+		{
+			"Name":"LoopSign",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"LoopName",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"LoopContent",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Loop",
+				"Program":"String",
+				"Input":{
+					"InputName":"String",
+					"InputValue":"String",
+					"InputRef":[
+						{
+							"Name":"RefType",
+							"Multiplicity":"1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign1",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign2",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						}
+						
+					]
+					
+				},
+				"Output":{
+					"OutputName":"String",
+					"OutputValue":"String",
+					"OutputRef":[
+						{
+							"Name":"RefType",
+							"Multiplicity":"1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign1",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign2",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						}
+						
+					]
+					
+				},
+				"Feature":{
+					"FeatureName":"String",
+					"FeatureValue":"String",
+					"FeatureRef":[
+						{
+							"Name":"RefType",
+							"Multiplicity":"1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign1",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						},
+						{
+							"Name":"Sign2",
+							"Multiplicity":"0..1",
+							"Type":"String"
+						}
+						
+					]
+					
+				}
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"LoopSign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"LoopName"
+			]
+			
+		}
+		
+	]
+}

+ 78 - 0
etc/meta/def/level1_def_Route.json

@@ -0,0 +1,78 @@
+{
+	"Columns":[
+		{
+			"Name":"RouteSign",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"RouteName",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"RouteContent",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Route",
+				"Route":"String",
+				"ReceiveTime":"String",
+				"SendTime":"String",
+				"ObjectValue":"String",
+				"ObjectRef":[
+					{
+						"Name":"RefType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"Sign1",
+						"Multiplicity":"0..1",
+						"Type":"String"
+					},
+					{
+						"Name":"Sign2",
+						"Multiplicity":"0..1",
+						"Type":"String"
+					}
+					
+				],
+				"TaskValue":"String",
+				"TaskRef":[
+					{
+						"Name":"RefType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"Sign1",
+						"Multiplicity":"0..1",
+						"Type":"String"
+					},
+					{
+						"Name":"Sign2",
+						"Multiplicity":"0..1",
+						"Type":"String"
+					}
+					
+				],
+				"Ended":"Boolean"
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"RouteSign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"RouteName"
+			]
+			
+		}
+		
+	]
+}

+ 12 - 0
etc/meta/def/level1_def_Variant1.json

@@ -0,0 +1,12 @@
+{
+	"Type":"Variant",
+	"Reference":false,
+	"Columns":[
+		{
+			"Name":"value",
+			"Multiplicity":"1",
+			"Type":"String"
+		}
+		
+	]
+}

+ 50 - 0
etc/meta/def/level1_def_Variant2.json

@@ -0,0 +1,50 @@
+{
+	"Type":"Variant",
+	"Reference":true,
+	"ReferenceTarget":[
+		{
+			"Target":"Database",
+			"Name":"database_1"
+		},
+		{
+			"Target":"Datatable",
+			"Name":"datatable_4"
+		}
+		
+	],
+	"ReferenceTimeColumn":"timefrom",
+	"ItemTarget":[
+		{
+			"Target":"Database",
+			"Name":"String"
+		},
+		{
+			"Target":"Datatable",
+			"Name":"String"
+		}
+		
+	],
+	"ItemTimeColumn":"String",
+	"ItemIdentifier":[
+		{
+			"Name":"MeterSign",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"FunctionId",
+			"Multiplicity":"1",
+			"Type":"Long"
+		}
+		
+	],
+	"Columns":[
+		{
+			"Name":"value",
+			"Multiplicity":"1",
+			"Type":"String"
+		}
+		
+	]
+	
+}

+ 49 - 0
etc/meta/def/level1_def_energydata.json

@@ -0,0 +1,49 @@
+{
+	"Columns":[
+		{
+			"Name":"TreeId",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"TreeNodeId",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"time",
+			"Multiplicity":"1",
+			"Type":"DateTime"
+		},
+		{
+			"Name":"value",
+			"Multiplicity":"1",
+			"Type":"Double"
+		}
+		
+	],
+	"Key":[
+		"TreeId",
+		"TreeNodeId",
+		"time"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"time"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"TreeId",
+				"TreeNodeId",
+				"time"
+			]
+			
+		}
+		
+	]
+}

+ 6 - 0
etc/meta/dml/level1_meta_criteriavalue.json

@@ -0,0 +1,6 @@
+{
+	"$lt":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue",
+	"$lte":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue",
+	"$gt":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue",
+	"$gte":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue"
+}

+ 13 - 0
etc/meta/dml/level1_meta_delete.json

@@ -0,0 +1,13 @@
+{
+	"QueryType":"delete",
+	"QueryTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"[a-zA-Z_][a-zA-Z_0-9]*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue"
+		}
+		
+	],
+	"Criteria":{
+		"[a-zA-Z_][a-zA-Z_0-9]*([\\.][a-zA-Z_][a-zA-Z_0-9]*)*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue|NULL|\\CriteriaValue"
+	}
+}

+ 13 - 0
etc/meta/dml/level1_meta_insert.json

@@ -0,0 +1,13 @@
+{
+	"QueryType":"insert",
+	"QueryTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"[a-zA-Z_][a-zA-Z_0-9]*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue"
+		}
+		
+	],
+	"InsertObject":{
+		
+	}
+}

+ 7 - 0
etc/meta/dml/level1_meta_result.json

@@ -0,0 +1,7 @@
+{
+	"Result":"success|failure",
+	"Reason":"String",
+	"Items":[
+		
+	]
+}

+ 3 - 0
etc/meta/dml/level1_meta_returncolumnflag.json

@@ -0,0 +1,3 @@
+{
+	"[a-zA-Z_][a-zA-Z_0-9]*":"yes|no|\\ReturnColumnFlag"
+}

+ 23 - 0
etc/meta/dml/level1_meta_select.json

@@ -0,0 +1,23 @@
+{
+	"QueryType":"select",
+	"QueryTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"[a-zA-Z_][a-zA-Z_0-9]*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue"
+		}
+		
+	],
+	"ReturnColumn":{
+		"[a-zA-Z_][a-zA-Z_0-9]*":"yes|no|\\ReturnColumnFlag"
+	},
+	"Criteria":{
+		"[a-zA-Z_][a-zA-Z_0-9]*([\\.][a-zA-Z_][a-zA-Z_0-9]*)*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue|NULL|\\CriteriaValue"
+	},
+	"Sort":{
+		"[a-zA-Z_][a-zA-Z_0-9]*":"asc|desc"
+	},
+	"Limit":{
+		"Skip":"LongValue",
+		"Count":"LongValue"
+	}
+}

+ 16 - 0
etc/meta/dml/level1_meta_update.json

@@ -0,0 +1,16 @@
+{
+	"QueryType":"update",
+	"QueryTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"[a-zA-Z_][a-zA-Z_0-9]*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue"
+		}
+		
+	],
+	"Criteria":{
+		"[a-zA-Z_][a-zA-Z_0-9]*([\\.][a-zA-Z_][a-zA-Z_0-9]*)*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue|NULL|\\CriteriaValue"
+	},
+	"Set":{
+		"[a-zA-Z_][a-zA-Z_0-9]*([\\.][a-zA-Z_][a-zA-Z_0-9]*)*":"StringValue|BooleanValue|LongValue|DoubleValue|DateTimeValue|NULL|\\JSONObject"
+	}
+}

+ 74 - 0
etc/meta/dml/level1_sam_delete1.json

@@ -0,0 +1,74 @@
+[
+	{
+		"QueryType":"delete",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts"
+			}
+			
+		],
+		"Criteria":{
+			"ContactAddress.City":"±±¾©"
+		}
+		
+	},
+	{
+		"QueryType":"delete",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"ContactAddress"
+			}
+			
+		],
+		"Criteria":{
+			
+		}
+		
+	},
+	{
+		"QueryType":"delete",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"BankCard"
+			}
+			
+		],
+		"Criteria":{
+			"CardNumber":{
+				"$gte":"6225000000000000",
+				"$lt":"6226000000000000"
+			}
+			
+		}
+		
+	}
+]

+ 23 - 0
etc/meta/dml/level1_sam_insert1.json

@@ -0,0 +1,23 @@
+{
+	"QueryType":"insert",
+	"QueryTarget":[
+		{
+			"Target":"database_1"
+		},
+		{
+			"Target":"datatable_1",
+			"BuildingSign":"1101070037"
+		},
+		{
+			"Target":"desc"
+		},
+		{
+			"Target":"OtherInfo"
+		}
+		
+	],
+	"InsertObject":{
+		"InfoName":"²âÊÔÐÅÏ¢1",
+		"InfoContent":"²âÊÔÄÚÈÝ1"
+	}
+}

+ 95 - 0
etc/meta/dml/level1_sam_select1.json

@@ -0,0 +1,95 @@
+[
+	{
+		"QueryType":"select",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts"
+			}
+			
+		],
+		"ReturnColumn":{
+			"ContactID":"yes",
+			"ContactName":"yes",
+			"ContactAddress":{
+				"City":"no",
+				"Street":"yes"
+			},
+			"BankCard":{
+				"CardNumber":"yes",
+				"BankName":"no"
+			}
+			
+		},
+		"Criteria":{
+			"ContactAddress.City":"±±¾©"
+		}
+		
+	},
+	{
+		"QueryType":"select",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"ContactAddress"
+			}
+			
+		],
+		"ReturnColumn":{
+			"City":"yes",
+			"Street":"yes"
+		},
+		"Criteria":{
+			
+		}
+		
+	},
+	{
+		"QueryType":"select",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"BankCard"
+			}
+			
+		],
+		"ReturnColumn":{
+			"CardNumber":"yes",
+			"BankName":"yes"
+		},
+		"Criteria":{
+			"CardNumber":{
+				"$gte":"6225000000000000",
+				"$lt":"6226000000000000"
+			}
+			
+		}
+		
+	}
+]

+ 83 - 0
etc/meta/dml/level1_sam_update1.json

@@ -0,0 +1,83 @@
+[
+	{
+		"QueryType":"update",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts"
+			}
+			
+		],
+		"Criteria":{
+			"ContactAddress.City":"±±¾©"
+		},
+		"Set":{
+			"ContactAddress.City":"ºÓ±±"
+		}
+		
+	},
+	{
+		"QueryType":"update",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"ContactAddress"
+			}
+			
+		],
+		"Criteria":{
+			
+		},
+		"Set":{
+			"City":"ºÓ±±"
+		}
+		
+	},
+	{
+		"QueryType":"update",
+		"QueryTarget":[
+			{
+				"Target":"database_1"
+			},
+			{
+				"Target":"datatable_1",
+				"BuildingSign":"1101070037"
+			},
+			{
+				"Target":"contacts",
+				"ContactID":"11111"
+			},
+			{
+				"Target":"BankCard"
+			}
+			
+		],
+		"Criteria":{
+			"CardNumber":{
+				"$gte":"6225000000000000",
+				"$lt":"6226000000000000"
+			}
+			
+		},
+		"Set":{
+			"BankName":"½¨ÐÐ"
+		}
+		
+	}
+]

+ 23 - 0
etc/meta/meta/level1.json

@@ -0,0 +1,23 @@
+{
+	"Columns":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1|0..n",
+			"Type":"String|Boolean|Long|Double|DateTime|\\Tree|\\Topo|\\Route|\\Loop|\\Flow|\\Structure|\\Variant"
+		}
+		
+	],
+	"Key":[
+		"[a-zA-Z_][a-zA-Z_0-9]*"
+	],
+	"Indexes":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Columns":[
+				"[a-zA-Z_][a-zA-Z_0-9]*"
+			]
+			
+		}
+		
+	]
+}

+ 36 - 0
etc/meta/meta/level1_Flow.json

@@ -0,0 +1,36 @@
+{
+	"Type":"Flow",
+	"Node":{
+		"NodeSign":"String",
+		"NodeName":"String",
+		"NodeType":"String",
+		"NodeValue":"String",
+		"NodeRef":[
+			{
+				"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+				"Multiplicity":"1|0..1",
+				"Type":"String|Long"
+			}
+			
+		]
+		
+	},
+	"Line":{
+		"LineSign":"String",
+		"LineName":"String",
+		"LineStart":"String",
+		"LineStartPort":"Long",
+		"LineEnd":"String",
+		"LineEndPort":"Long",
+		"LineValue":"String",
+		"LineRef":[
+			{
+				"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+				"Multiplicity":"1|0..1",
+				"Type":"String|Long"
+			}
+			
+		]
+		
+	}
+}

+ 43 - 0
etc/meta/meta/level1_Loop.json

@@ -0,0 +1,43 @@
+{
+	"Type":"Loop",
+	"Program":"String",
+	"Input":{
+		"InputName":"String",
+		"InputValue":"String",
+		"InputRef":[
+			{
+				"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+				"Multiplicity":"1|0..1",
+				"Type":"String|Long"
+			}
+			
+		]
+		
+	},
+	"Output":{
+		"OutputName":"String",
+		"OutputValue":"String",
+		"OutputRef":[
+			{
+				"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+				"Multiplicity":"1|0..1",
+				"Type":"String|Long"
+			}
+			
+		]
+		
+	},
+	"Feature":{
+		"FeatureName":"String",
+		"FeatureValue":"String",
+		"FeatureRef":[
+			{
+				"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+				"Multiplicity":"1|0..1",
+				"Type":"String|Long"
+			}
+			
+		]
+		
+	}
+}

+ 25 - 0
etc/meta/meta/level1_Route.json

@@ -0,0 +1,25 @@
+{
+	"Type":"Route",
+	"Flow":"String",
+	"ReceiveTime":"String",
+	"SendTime":"String",
+	"ObjectValue":"String",
+	"ObjectRef":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1",
+			"Type":"String|Long"
+		}
+		
+	],
+	"TaskValue":"String",
+	"TaskRef":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1",
+			"Type":"String|Long"
+		}
+		
+	],
+	"Ended":"Boolean"
+}

+ 23 - 0
etc/meta/meta/level1_Structure.json

@@ -0,0 +1,23 @@
+{
+	"Columns":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1|0..n",
+			"Type":"String|Boolean|Long|Double|DateTime|\\Tree|\\Topo|\\Route|\\Loop|\\Flow|\\Structure|\\Variant"
+		}
+		
+	],
+	"Key":[
+		"[a-zA-Z_][a-zA-Z_0-9]*"
+	],
+	"Indexes":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Columns":[
+				"[a-zA-Z_][a-zA-Z_0-9]*"
+			]
+			
+		}
+		
+	]
+}

+ 23 - 0
etc/meta/meta/level1_Structure_NV.json

@@ -0,0 +1,23 @@
+{
+	"Columns":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1|0..n",
+			"Type":"String|Boolean|Long|Double|DateTime|\\Tree|\\Topo|\\Route|\\Loop|\\Flow|\\Structure_NV"
+		}
+		
+	],
+	"Key":[
+		"[a-zA-Z_][a-zA-Z_0-9]*"
+	],
+	"Indexes":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Columns":[
+				"[a-zA-Z_][a-zA-Z_0-9]*"
+			]
+			
+		}
+		
+	]
+}

+ 16 - 0
etc/meta/meta/level1_Topo.json

@@ -0,0 +1,16 @@
+{
+	"Type":"Topo",
+	"StartNodeId":"String",
+	"EndNodeId":"String",
+	"Edge":"Boolean",
+	"EdgeId":"String",
+	"EdgePropertyValue":"String",
+	"EdgePropertyRef":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1",
+			"Type":"String|Long"
+		}
+		
+	]
+}

+ 13 - 0
etc/meta/meta/level1_Tree.json

@@ -0,0 +1,13 @@
+{
+	"Type":"Tree",
+	"TreeNodeId":"String|Long",
+	"TreeNodeValue":"String",
+	"TreeNodeRef":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1",
+			"Type":"String|Long"
+		}
+		
+	]
+}

+ 36 - 0
etc/meta/meta/level1_Variant.json

@@ -0,0 +1,36 @@
+{
+	"Type":"Variant",
+	"Reference":"true|false",
+	"ReferenceTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]"
+		}
+		
+	],
+	"ReferenceTimeColumn":"[a-zA-Z_][a-zA-Z_0-9]*",
+	"ItemTarget":[
+		{
+			"Target":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Name":"String"
+		}
+		
+	],
+	"ItemTimeColumn":"String",
+	"ItemIdentifier":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1",
+			"Type":"String|Long"
+		}
+		
+	],
+	"Columns":[
+		{
+			"Name":"[a-zA-Z_][a-zA-Z_0-9]*",
+			"Multiplicity":"1|0..1|0..n",
+			"Type":"String|Boolean|Long|Double|DateTime|\\Tree|\\Topo|\\Route|\\Loop|\\Flow|\\Structure_NV"
+		}
+		
+	]
+}

+ 139 - 0
etc/meta/sam/level1_sam_1.json

@@ -0,0 +1,139 @@
+{
+	"BuildingName":"石景山万达A座",
+	"BuildingSign":"1101070037",
+	"desc":{
+		"HVACType":"中央空调系统",
+		"HeatingType":"锅炉",
+		"OtherInfo":[
+			{
+				"InfoName":"维护结构",
+				"InfoContent":"玻璃幕墙"
+			},
+			{
+				"InfoName":"土木结构",
+				"InfoContent":"钢混"
+			}
+			
+		]
+		
+	},
+	"contacts":[
+		{
+			"ContactID":"11111",
+			"ContactName":"张三",
+			"ContactAddress":{
+				"City":"北京",
+				"Street":"农大南路1号"
+			},
+			"BankCard":[
+				{
+					"CardNumber":"6226888888888888",
+					"BankName":"招行"
+				},
+				{
+					"CardNumber":"6226000000000001",
+					"BankName":"招行"
+				}
+				
+			]
+			
+		},
+		{
+			"ContactID":"22222",
+			"ContactName":"李四",
+			"ContactAddress":{
+				"City":"北京",
+				"Street":"中关村大街1号"
+			},
+			"BankCard":[
+				{
+					"CardNumber":"6225888888888888",
+					"BankName":"招行"
+				},
+				{
+					"CardNumber":"6225000000000001",
+					"BankName":"招行"
+				}
+				
+			]
+			
+		}
+		
+	],
+	"EnergyItemTree":{
+		"TreeNodeId":1,
+		"TreeNodeRef":{
+			"Sign1":"1",
+			"Sign2":"1"
+		},
+		"Children":[
+			{
+				"TreeNodeId":11,
+				"TreeNodeRef":{
+					"Sign1":"1",
+					"Sign2":"11"
+				},
+				"Children":[
+					
+				]
+				
+			},
+			{
+				"TreeNodeId":12,
+				"TreeNodeRef":{
+					"Sign1":"1",
+					"Sign2":"12"
+				},
+				"Children":[
+					
+				]
+				
+			}
+			
+		]
+		
+	},
+	"distribution":[
+		{
+			"TopoItems":[
+				{
+					"StartNodeId":"1#",
+					"EndNodeId":"1-1",
+					"Edge":1,
+					"EdgeId":"e1",
+					"EdgePropertyValue":"p1"
+				},
+				{
+					"StartNodeId":"1#",
+					"EndNodeId":"1-2",
+					"Edge":1,
+					"EdgeId":"e2",
+					"EdgePropertyValue":"p2"
+				}
+				
+			]
+			
+		},
+		{
+			"TopoItems":[
+				{
+					"StartNodeId":"2#",
+					"EndNodeId":"2-1",
+					"Edge":1,
+					"EdgeId":"e1",
+					"EdgePropertyValue":"p1"
+				},
+				{
+					"StartNodeId":"2#",
+					"EndNodeId":"2-2",
+					"Edge":1,
+					"EdgeId":"e2",
+					"EdgePropertyValue":"p2"
+				}
+				
+			]
+			
+		}
+		
+	]
+}

+ 108 - 0
etc/meta/sam/level1_sam_Flow.json

@@ -0,0 +1,108 @@
+{
+	"FlowName":"¿Õµ÷άÐÞ",
+	"FlowSign":"repair-20160825-001",
+	"FlowContent":{
+		"Nodes":[
+			{
+				"NodeSign":"Start",
+				"NodeName":"Start",
+				"NodeType":"Start",
+				"NodeValue":"2016-08-25 10:20:00"
+			},
+			{
+				"NodeSign":"Sequence1",
+				"NodeName":"Sequence1",
+				"NodeType":"Sequence",
+				"NodeRef":{
+					"RefType":"A",
+					"BuildingSign":"1101070037",
+					"ASign":"a1"
+				}
+				
+			},
+			{
+				"NodeSign":"Condition1",
+				"NodeName":"Condition1",
+				"NodeType":"Condition",
+				"NodeRef":{
+					"RefType":"B",
+					"BuildingSign":"1101070037",
+					"BSign":"b2"
+				}
+				
+			},
+			{
+				"NodeSign":"Sequence2",
+				"NodeName":"Sequence2",
+				"NodeType":"Sequence",
+				"NodeRef":{
+					"RefType":"A",
+					"BuildingSign":"1101070037",
+					"ASign":"a2"
+				}
+				
+			},
+			{
+				"NodeSign":"End",
+				"NodeName":"End",
+				"NodeType":"End",
+				"NodeValue":"2016-08-25 10:30:00"
+			}
+			
+		],
+		"Lines":[
+			{
+				"LineSign":"L1",
+				"LineStart":"Start",
+				"LineStartPort":"Out1",
+				"LineEnd":"Sequence1",
+				"LineEndPort":"In1",
+				"LineValue":"a"
+			},
+			{
+				"LineSign":"L2",
+				"LineStart":"Sequence1",
+				"LineStartPort":"Out1",
+				"LineEnd":"Condition1",
+				"LineEndPort":"In1",
+				"LineValue":"b"
+			},
+			{
+				"LineSign":"L3",
+				"LineStart":"Condition1",
+				"LineStartPort":"Out1",
+				"LineEnd":"Sequence2",
+				"LineEndPort":"In1",
+				"LineRef":{
+					"RefType":"Document",
+					"BuildingSign":"1101070037",
+					"ASign":"doc1"
+				}
+				
+			},
+			{
+				"LineSign":"L4",
+				"LineStart":"Condition1",
+				"LineStartPort":"Out2",
+				"LineEnd":"End",
+				"LineEndPort":"In1",
+				"LineRef":{
+					"RefType":"Document",
+					"BuildingSign":"1101070037",
+					"ASign":"doc2"
+				}
+				
+			},
+			{
+				"LineSign":"L5",
+				"LineStart":"Sequence2",
+				"LineStartPort":"Out1",
+				"LineEnd":"End",
+				"LineEndPort":"In1",
+				"LineValue":"e"
+			}
+			
+		]
+		
+	}
+}

+ 74 - 0
etc/meta/sam/level1_sam_Loop.json

@@ -0,0 +1,74 @@
+{
+	"LoopName":"¿Õµ÷άÐÞ",
+	"LoopSign":"repair-20160825-001",
+	"LoopContent":{
+		"Program":"set value",
+		"Inputs":[
+			{
+				"InputName":"input1",
+				"InputValue":"100.0",
+				"InputRef":{
+					"RefType":"A",
+					"Sign1":"1101070037",
+					"Sign2":"a1"
+				}
+				
+			},
+			{
+				"InputName":"input2",
+				"InputValue":"200.0",
+				"InputRef":{
+					"RefType":"B",
+					"Sign1":"1101070037"
+				}
+				
+			}
+			
+		],
+		"Outputs":[
+			{
+				"OutputName":"output1",
+				"OutputValue":"100.0",
+				"OutputRef":{
+					"RefType":"A",
+					"Sign1":"1101070037",
+					"Sign2":"a1"
+				}
+				
+			},
+			{
+				"OutputName":"output2",
+				"OutputValue":"200.0",
+				"OutputRef":{
+					"RefType":"B",
+					"Sign1":"1101070037"
+				}
+				
+			}
+			
+		],
+		"Features":[
+			{
+				"FeatureName":"feature1",
+				"FeatureValue":"100.0",
+				"FeatureRef":{
+					"RefType":"A",
+					"Sign1":"1101070037",
+					"Sign2":"a1"
+				}
+				
+			},
+			{
+				"FeatureName":"feature2",
+				"FeatureValue":"200.0",
+				"FeatureRef":{
+					"RefType":"B",
+					"Sign1":"1101070037"
+				}
+				
+			}
+			
+		]
+		
+	}
+}

+ 32 - 0
etc/meta/sam/level1_sam_Route.json

@@ -0,0 +1,32 @@
+{
+	"RouteName":"¿Õµ÷άÐÞ",
+	"RouteSign":"repair-20160825-001",
+	"RouteContent":{
+		"RouteItems":[
+			{
+				"Route":"n1",
+				"ReceiveTime":"2016-01-01 00:00:00",
+				"SendTime":"2016-01-01 01:00:00",
+				"ObjectValue":"abc",
+				"TaskValue":"String"
+			},
+			{
+				"Route":"n2",
+				"ReceiveTime":"2016-01-01 02:00:00",
+				"SendTime":"2016-01-01 03:00:00",
+				"ObjectRef":{
+					"RefType":"A",
+					"Sign1":"1101070037",
+					"Sign2":"a1"
+				},
+				"TaskRef":{
+					"RefType":"B",
+					"Sign1":"1101070037"
+				}
+				
+			}
+			
+		],
+		"Ended":"True"
+	}
+}

+ 14 - 0
etc/meta/sam/level1_sam_Variant1.json

@@ -0,0 +1,14 @@
+[
+	{
+		"time":"2013-01-01 00:00:00",
+		"value":"abc2013"
+	},
+	{
+		"time":"2014-01-01 00:00:00",
+		"value":"abc2014"
+	},
+	{
+		"time":"2015-01-01 00:00:00",
+		"value":"abc2015"
+	}
+]

+ 17 - 0
etc/meta/sam/level1_sam_Variant2.json

@@ -0,0 +1,17 @@
+{
+	"ItemTarget": [
+		{
+			"Target": "Database",
+			"Name": "MeterData"
+		},
+		{
+			"Target": "Datatable",
+			"Name": "meterdata"
+		}
+	],
+	"ItemTimeColumn": "timefrom",
+	"ItemIdentifier": {
+		"MeterSign": "1001",
+		"FunctionId": "209"
+	}
+}

+ 17 - 0
etc/meta/sam/level1_sam_energydata.json

@@ -0,0 +1,17 @@
+[
+	{
+		"TreeNodeId":1,
+		"time":"2016-01-01 00:00:00",
+		"value":24.5
+	},
+	{
+		"TreeNodeId":11,
+		"time":"2016-01-01 00:00:00",
+		"value":24.5
+	},
+	{
+		"TreeNodeId":12,
+		"time":"2016-01-01 00:00:00",
+		"value":24.5
+	}
+]

+ 98 - 0
etc/project_person/def.json

@@ -0,0 +1,98 @@
+ {
+	"Columns": [
+		{
+			"Name": "project_person_id",
+			"Type": "String"
+		},
+		{
+			"Name": "project_id",
+			"Type": "String"
+		},
+		{
+			"Name": "person_id",
+			"Type": "String"
+		},
+		{
+			"Name": "person_num",
+			"Type": "String"
+		},
+		{
+			"Name": "specialty",
+			"Type": "String"
+		},
+		{
+			"Name": "position",
+			"Type": "String"
+		},
+		{
+			"Name": "custom_tag",
+			"Type": "String"
+		},
+		{
+			"Name": "id_photo",
+			"Type": "String"
+		},
+		{
+			"Name": "head_portrait",
+			"Type": "String"
+		},
+		{
+			"Name": "person_status",
+			"Type": "String"
+		},
+		{
+			"Name": "roles",
+			"Type": "String"
+		},
+		{
+			"Name": "create_time",
+			"Type": "String"
+		},
+		{
+			"Name": "update_time",
+			"Type": "String"
+		},
+		{
+			"Name": "valid",
+			"Type": "Boolean"
+		}
+	],
+	"Key": [
+		"project_person_id"
+	],
+	"Indexes": [
+		{
+			"Name": "index_proId_valid_status_post",
+			"Columns": [
+				"project_id",
+				"valid",
+				"person_status",
+				"position"
+			]
+		},
+		{
+			"Name": "index_proId_valid_post",
+			"Columns": [
+				"project_id",
+				"valid",
+				"position"
+			]
+		},
+		{
+			"Name": "index_valid_personId_proId",
+			"Columns": [
+				"valid",
+				"person_id",
+				"project_id"
+			]
+		},
+		{
+			"Name": "index_proId_personNum_valid",
+			"Columns": [
+				"project_id",
+				"person_num",
+				"valid"
+			]
+		}
+	]
+}

+ 27 - 0
etc/project_person/query1.json

@@ -0,0 +1,27 @@
+{
+	"QueryType": "insert",
+	"Database": "person_service",
+	"Datatable": "project_person",
+	"InsertObject": {
+		"attachments": [],
+		"birthday": "1997-01-01",
+		"custom_tag": "[]",
+		"customer_id": "",
+		"gender": "male",
+		"id_number": "131311199701010101",
+		"name": "²âÊÔ¹ØÁª±í¸üÐÂ",
+		"operate_person_id": "RY1503737342744",
+		"person_id": "RY1509442348221",
+		"person_num": "",
+		"person_status": "1",
+		"phone_num": "13501010101",
+		"position": "",
+		"project_id": "Pj1301020001",
+		"project_person_id": "1509442409360",
+		"roles": "{}",
+		"specialty": "[]",
+		"create_time": "20171031173338",
+		"update_time": "20171031173338",
+		"valid": true
+	}
+}

+ 16 - 0
etc/project_person/query2.json

@@ -0,0 +1,16 @@
+{
+	"QueryType": "update",
+	"Database": "person_service",
+	"Datatable": "project_person",
+	"Criteria": {
+		"person_id": "RY1509442348221",
+		"project_id": "Pj1301020001",
+		"valid": true
+	},
+	"Set": {
+		"customer_id": "",
+		"operate_person_id": "RY1503737342744",
+		"person_status": "0",
+		"update_time": "20171031173528"
+	}
+}

+ 10 - 0
etc/project_person/query3.json

@@ -0,0 +1,10 @@
+{
+	"QueryType": "select",
+	"Database": "person_service",
+	"Datatable": "project_person",
+	"Criteria": {
+		"person_status": "0",
+		"project_id": "Pj1301020001",
+		"valid": true
+	}
+}

+ 3 - 0
etc/result_failure.json

@@ -0,0 +1,3 @@
+{
+	"Result":"failure"
+}

+ 3 - 0
etc/result_success.json

@@ -0,0 +1,3 @@
+{
+	"Result":"success"
+}

+ 62 - 0
etc/reverse/def.json

@@ -0,0 +1,62 @@
+{
+	"Columns": [
+		{
+			"Name": "String1",
+			"Type": "String"
+		},
+		{
+			"Name": "Boolean1",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "Long1",
+			"Type": "Long"
+		},
+		{
+			"Name": "String2",
+			"Type": "String"
+		},
+		{
+			"Name": "Boolean2",
+			"Type": "Boolean"
+		},
+		{
+			"Name": "Long2",
+			"Type": "Long"
+		}
+	],
+	"Key": [
+		"String1",
+		"Boolean1",
+		"Long1"
+	],
+	"Indexes": [
+		{
+			"Name": "index_1",
+			"Columns": [
+				"Long1",
+				"String1",
+				"Boolean1",
+				"String2"
+			]
+		},
+		{
+			"Name": "index_2",
+			"Columns": [
+				"String1",
+				"Boolean1",
+				"Long1",
+				"Boolean2"
+			]
+		},
+		{
+			"Name": "index_3",
+			"Columns": [
+				"Boolean1",
+				"Long1",
+				"String1",
+				"Long2"
+			]
+		}
+	]
+}

+ 62 - 0
etc/section1/def.json

@@ -0,0 +1,62 @@
+{
+	"Columns":[
+		{
+			"Name":"Sign",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"Name",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"IsHotel",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"Height",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"BuildTime",
+			"Multiplicity":"1",
+			"Type":"DateTime"
+		},
+		{
+			"Name":"m01",
+			"Multiplicity":"0..1",
+			"Type":"Long"
+		},
+		{
+			"Name":"m0n",
+			"Multiplicity":"0..n",
+			"Type":"Long"
+		}
+		
+	],
+	"Key":[
+		"Sign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"Name"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"Height",
+				"Name"
+			]
+			
+		}
+		
+	]
+	
+}

+ 218 - 0
etc/section2/def.json

@@ -0,0 +1,218 @@
+{
+	"Columns":[
+		{
+			"Name":"Sign",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"Name",
+			"Multiplicity":"1",
+			"Type":"String(100)"
+		},
+		{
+			"Name":"IsHotel",
+			"Multiplicity":"1",
+			"Type":"Boolean"
+		},
+		{
+			"Name":"Height",
+			"Multiplicity":"1",
+			"Type":"Double"
+		},
+		{
+			"Name":"BuildTime",
+			"Multiplicity":"1",
+			"Type":"DateTime"
+		},
+		{
+			"Name":"m01",
+			"Multiplicity":"0..1",
+			"Type":"Long"
+		},
+		{
+			"Name":"m0n",
+			"Multiplicity":"0..n",
+			"Type":"Long"
+		},
+		{
+			"Name":"desc",
+			"Multiplicity":"1",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"HVACType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"HeatingType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"OtherInfo",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"InfoName",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"InfoContent",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"InfoName"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"InfoName"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				],
+				"Key":[
+					
+				],
+				"Indexes":[
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"contacts",
+			"Multiplicity":"0..n",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"ContactID",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactName",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactAddress",
+						"Multiplicity":"1",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"City",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"Street",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								
+							],
+							"Indexes":[
+								
+							]
+							
+						}
+						
+					},
+					{
+						"Name":"BankCard",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"CardNumber",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"BankName",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"CardNumber"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"CardNumber"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				],
+				"Key":[
+					"ContactID"
+				],
+				"Indexes":[
+					{
+						"Name":"index_1",
+						"Columns":[
+							"ContactName"
+						]
+						
+					}
+					
+				]
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"Sign"
+	],
+	"Indexes":[
+		{
+			"Name":"index_1",
+			"Columns":[
+				"Name"
+			]
+			
+		},
+		{
+			"Name":"index_2",
+			"Columns":[
+				"Name",
+				"Height"
+			]
+			
+		}
+		
+	]
+	
+}

+ 158 - 0
etc/section3/def.json

@@ -0,0 +1,158 @@
+{
+	"Columns":[
+		{
+			"Name":"Sign",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"desc",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Variant",
+				"Reference":false,
+				"Columns":[
+					{
+						"Name":"HVACType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"HeatingType",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"OtherInfo",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"InfoName",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"InfoContent",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"InfoName"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"InfoName"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"contacts",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Variant",
+				"Reference":false,
+				"Columns":[
+					{
+						"Name":"ContactID",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactName",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactAddress",
+						"Multiplicity":"1",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"City",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"Street",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								
+							],
+							"Indexes":[
+								
+							]
+							
+						}
+						
+					},
+					{
+						"Name":"BankCard",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"CardNumber",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"BankName",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"CardNumber"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"CardNumber"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				]
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"Sign"
+	],
+	"Indexes":[
+		
+	]
+	
+}

+ 94 - 0
etc/section4/def.json

@@ -0,0 +1,94 @@
+{
+	"Columns":[
+		{
+			"Name":"MeterSign",
+			"Multiplicity":"1",
+			"Type":"String(1)"
+		},
+		{
+			"Name":"timefrom",
+			"Multiplicity":"1",
+			"Type":"DateTime"
+		},
+		{
+			"Name":"ContactID",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"ContactName",
+			"Multiplicity":"1",
+			"Type":"String"
+		},
+		{
+			"Name":"ContactAddress",
+			"Multiplicity":"1",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"City",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"Street",
+						"Multiplicity":"1",
+						"Type":"String"
+					}
+					
+				],
+				"Key":[
+					
+				],
+				"Indexes":[
+					
+				]
+				
+			}
+			
+		},
+		{
+			"Name":"BankCard",
+			"Multiplicity":"0..n",
+			"Type":{
+				"Columns":[
+					{
+						"Name":"CardNumber",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"BankName",
+						"Multiplicity":"1",
+						"Type":"String"
+					}
+					
+				],
+				"Key":[
+					"CardNumber"
+				],
+				"Indexes":[
+					{
+						"Name":"index_1",
+						"Columns":[
+							"CardNumber"
+						]
+						
+					}
+					
+				]
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"MeterSign",
+		"timefrom"
+	],
+	"Indexes":[
+		
+	]
+	
+}

+ 133 - 0
etc/section5/def.json

@@ -0,0 +1,133 @@
+{
+	"Columns":[
+		{
+			"Name":"Sign",
+			"Multiplicity":"1",
+			"Type":"Long"
+		},
+		{
+			"Name":"contacts",
+			"Multiplicity":"1",
+			"Type":{
+				"Type":"Variant",
+				"Reference":true,
+				"ReferenceTarget":[
+					{
+						"Target":"Database",
+						"Name":"database_1"
+					},
+					{
+						"Target":"Datatable",
+						"Name":"datatable_4"
+					}
+					
+				],
+				"ReferenceTimeColumn":"timefrom",
+				"ItemTarget":[
+					{
+						"Target":"Database",
+						"Name":"String"
+					},
+					{
+						"Target":"Datatable",
+						"Name":"String"
+					}
+					
+				],
+				"ItemTimeColumn":"String",
+				"ItemIdentifier":[
+					{
+						"Name":"MeterSign",
+						"Multiplicity":"1",
+						"Type":"String(1)"
+					}
+					
+				],
+				"Columns":[
+					{
+						"Name":"ContactID",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactName",
+						"Multiplicity":"1",
+						"Type":"String"
+					},
+					{
+						"Name":"ContactAddress",
+						"Multiplicity":"1",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"City",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"Street",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								
+							],
+							"Indexes":[
+								
+							]
+							
+						}
+						
+					},
+					{
+						"Name":"BankCard",
+						"Multiplicity":"0..n",
+						"Type":{
+							"Columns":[
+								{
+									"Name":"CardNumber",
+									"Multiplicity":"1",
+									"Type":"String"
+								},
+								{
+									"Name":"BankName",
+									"Multiplicity":"1",
+									"Type":"String"
+								}
+								
+							],
+							"Key":[
+								"CardNumber"
+							],
+							"Indexes":[
+								{
+									"Name":"index_1",
+									"Columns":[
+										"CardNumber"
+									]
+									
+								}
+								
+							]
+							
+						}
+						
+					}
+					
+				]
+				
+			}
+			
+		}
+		
+	],
+	"Key":[
+		"Sign"
+	],
+	"Indexes":[
+		
+	]
+	
+}

+ 10 - 0
etc/select.json

@@ -0,0 +1,10 @@
+{
+	"QueryType": "index_create",
+	"Database": "db_time_data",
+	"Datatable": "original_month",
+	"Name": "index_1",
+	"Columns": [
+		"meter",
+		"funcid"
+	]
+}

+ 147 - 0
etc/selects.json

@@ -0,0 +1,147 @@
+[
+	{
+		"QueryType": "table_drop",
+		"Database": "db_test",
+		"Datatable": "table_index_data"
+	},
+	{
+		"QueryType": "table_create",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Definition": {
+			"strong_consistency": true,
+			"Columns": [
+				{
+					"Name": "KeyLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "KeyDouble",
+					"Type": "Double"
+				},
+				{
+					"Name": "KeyString",
+					"Type": "String"
+				},
+				{
+					"Name": "KeyBoolean",
+					"Type": "Boolean"
+				},
+				{
+					"Name": "ValueLong",
+					"Type": "Long"
+				},
+				{
+					"Name": "ValueDouble",
+					"Type": "Double"
+				},
+				{
+					"Name": "ValueString",
+					"Type": "String"
+				},
+				{
+					"Name": "ValueBoolean",
+					"Type": "Boolean"
+				}
+			],
+			"Key": [
+				"KeyLong",
+				"KeyDouble",
+				"KeyString",
+				"KeyBoolean"
+			],
+			"Indexes": [
+				{
+					"Name": "index_1",
+					"Columns": [
+						"ValueLong"
+					]
+				},
+				{
+					"Name": "index_2",
+					"Columns": [
+						"ValueString"
+					]
+				}
+			]
+		}
+	},
+	{
+		"QueryType": "batch_insert",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"InsertObjects": [
+			{
+				"KeyLong": 1,
+				"KeyDouble": 1.0,
+				"KeyString": "a",
+				"KeyBoolean": false,
+				"ValueLong": 2,
+				"ValueDouble": 2.0,
+				"ValueString": "b",
+				"ValueBoolean": false
+			},
+			{
+				"KeyLong": 1,
+				"KeyDouble": 1.0,
+				"KeyString": "a",
+				"KeyBoolean": true,
+				"ValueLong": 1,
+				"ValueDouble": 2.0,
+				"ValueString": "b",
+				"ValueBoolean": false
+			}
+		]
+	},
+	{
+		"QueryType": "select",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			
+		}
+	},
+	{
+		"QueryType": "select",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			"ValueLong": 1
+		}
+	},
+	{
+		"QueryType": "update",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			"ValueLong": 1
+		},
+		"Set": {
+			"ValueLong": 1.1
+		}
+	},
+	{
+		"QueryType": "select",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			
+		}
+	},
+	{
+		"QueryType": "select_count",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			
+		}
+	},
+	{
+		"QueryType": "table_count",
+		"Database": "db_test",
+		"Datatable": "table_index_data",
+		"Criteria": {
+			
+		}
+	}
+]

+ 237 - 0
etc/selects_OrderBy.json

@@ -0,0 +1,237 @@
+[
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037"
+			},
+			{
+				"building": "1101070038"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "building",
+				"Asc": true
+			},
+			{
+				"Column": "meter",
+				"Asc": true
+			},
+			{
+				"Column": "funcid",
+				"Asc": true
+			},
+			{
+				"Column": "receivetime",
+				"Asc": true
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "building",
+				"Asc": true
+			},
+			{
+				"Column": "meter",
+				"Asc": true
+			},
+			{
+				"Column": "funcid",
+				"Asc": true
+			},
+			{
+				"Column": "receivetime",
+				"Asc": true
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "data",
+				"Asc": true
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "receivetime",
+				"Asc": true
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091001000000"
+			},
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091101000000"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "receivetime",
+				"Asc": false
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091101000000"
+			},
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091102000000"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "building",
+				"Asc": false
+			},
+			{
+				"Column": "meter",
+				"Asc": false
+			},
+			{
+				"Column": "funcid",
+				"Asc": false
+			},
+			{
+				"Column": "receivetime",
+				"Asc": false
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month",
+		"Criterias": [
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091101000000"
+			},
+			{
+				"building": "1101070037",
+				"meter": "1041",
+				"funcid": 0,
+				"receivetime": "20091102000000"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "building",
+				"Asc": true
+			},
+			{
+				"Column": "meter",
+				"Asc": true
+			},
+			{
+				"Column": "funcid",
+				"Asc": true
+			},
+			{
+				"Column": "receivetime",
+				"Asc": true
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month_200911",
+		"Criterias": [
+			{
+				"building": "1101070037"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "meter",
+				"Asc": true
+			},
+			{
+				"Column": "funcid",
+				"Asc": false
+			}
+		]
+	},
+	{
+		"QueryType": "combine_select",
+		"Database": "wanda",
+		"Datatable": "original_month_200911",
+		"Criterias": [
+			{
+				"building": "1101070037"
+			}
+		],
+		"OrderBy": [
+			{
+				"Column": "meter",
+				"Asc": true
+			},
+			{
+				"Column": "funcid",
+				"Asc": true
+			}
+		]
+	}
+]

+ 24 - 0
etc/selects_monitor.json

@@ -0,0 +1,24 @@
+[
+	{
+		"QueryType": "monitor_sum_curve",
+		"Database": "xc_public",
+		"TimeFrom": "20200703182500",
+		"TimeTo": "20200801000000",
+		"Caliber": "total_bytes"
+	},
+	{
+		"QueryType": "monitor_table_total",
+		"Database": "xc_public",
+		"TimeFrom": "20200703182500",
+		"TimeTo": "20200801000000",
+		"Caliber": "total_lines"
+	},
+	{
+		"QueryType": "monitor_table_curve",
+		"Database": "xc_public",
+		"Datatable": "data_energydata_1d",
+		"TimeFrom": "20200703180000",
+		"TimeTo": "20200801000000",
+		"Caliber": "total_lines"
+	}
+]

+ 0 - 0
etc/selects_notnull.json


Some files were not shown because too many files changed in this diff