5. 使用配置文件
第 4 步中的示例展示了使用配置文件以预先设计的一组指令启动 xSQL 的优势之一。数据库模式可以在 shard1.cfg 中定义,如下所示:
#
# Simple In-Memory configuration
#
database_name : imdb,
database_size : 20m,
runtime_configuration : {
debug_library : false,
disk_support : false,
shared_memory : false,
transaction_manager : mursiw
},
schema : "
#define uint2 unsigned<2>
declare database locatedb;
class Employee
{
string name;
uint2 dept_no;
unique tree<name> Iname;
tree<dept_no> Idept;
};
",
db_params: {
mem_page_size : 512
},
sql_trace : false,
sql_port : 5500
(在此,模式定义使用标准的 SmartEDB DDL。)请注意,通信端口在此也被定义为 sql_port : 5500。在 shard2.cfg 中,端口被定义为 sql_port : 5501。SQL 语句也可以在配置文件中执行,以便在启动时初始化数据库的状态。例如,请注意 client.cfg 中的 sql_statements 部分:
{
remote_client : [ "127.0.0.1:5500", "127.0.0.1:5501"],
sql_statements : "
1:INSERT INTO Employee(name, dept_no) VALUES('Luke Skywalker', 1);
1:INSERT INTO Employee(name, dept_no) VALUES('Han Solo', 1);
2:INSERT INTO Employee(name, dept_no) VALUES('Darth Vader', 2);
"
}
请注意,已指定了两个服务器的 IP 和端口号(127.0.0.1:5500、127.0.0.1:5501),然后 SQL 插入语句使用节点标识符“1:”和“2:”来指示将数据插入到哪个分片。SDK 示例/xsql/configs 目录中展示了许多其他配置文件功能。这些示例在 xSQLSamples 主题中进行了解释,配置文件选项的完整描述在 xSQL 启动选项中有详细说明。本教程的下一步将演示如何使用 xSQL 从外部文件导出和导入数据。