table-Oceanus配置说明

2019-03-10 13:14|来源: 网路

作用:

   描述具体的表规则

属性:

name – 声明 table 名字,当命中 sql 中的 table name 时,就会按照配置的逻辑进行路由

differ-name – sql中的表名是否与DB中的一致,是否需要重写

shard-type –分库分表类型。BY-DATABASE 表示按数据库进行划分。BY-TABLE 表示按表划分。 BY-DATABASE-TABLE 表示按库和表划分。NO-SHARD 表示不分库分表

threadpool – 为该table指定使用哪个线程池进行异步操作


子节点:

columns – 内部填充column列表

   子节点:column,是定用于sharding 逻辑的字段。

namenodes – 内部填充namenode列表,

function – 指定该table的shading函数,要求excute方法返回namenode列表的下标,从0开始


示例:

<table name="t_userdynamic" differ-name="false" shard-type="BY_DATABASE_TABLE"
threadpool="default">
    <columns>
        <column name="uid"/>
    </columns>
<namenodes>
    <namenode ref="safe_source1" tablename="t_userdynamic"/>
    <namenode ref="safe_source2" tablename="t_userdynamic"/>
</namenodes>
<function ref="userShardFunc" />
<trackers>
    <tracker type="EXECUTE_SQL" threshold="10"
    class="com.bj58.oceanus.demo.trackers.TableExecuteSqlTracker" />
</trackers>
</table>


本文来源:58同城Oceanus使用文档


相关问答

更多
  • 你正在超越异常,因为hibernate将DELETE视为一个实体并试图找到它,但显然无法找到它。 You are getting above exception because hibernate is treating DELETE as an entity and trying to find it but obviously not able to find one.
  • 正如它在评论中提出的那样,将代码整理一点就可以让事情奏效。 问题在于这行代码: query = sqlContext.createDataFrame(sqlContext.sql("SELECT * from database.table LIMIT 5").collect()) 你在这里做的是: 要求Spark查询数据源(创建一个DataFrame ) collect驱动程序中的所有内容作为本地收藏 使用createDataFrame并行化Spark上的本地集合 总的来说,这种方法应该有效,尽管这显然是 ...
  • 你的表可能很大,一个映射器( -m 1 )无法在合理的时间内完成任务。 尝试增加此参数(请参阅文档中的详细信息)。 要插入时间戳列,请使用--map-column-hive 'timestamp_column_name=TIMESTAMP' 。 Your table probably is large and one mapper (-m 1) can not complete the task within a reasonable time. Try to increase this parameter ...
  • 我认为静态地图就足够了。 (在我的应用程序中,我通常使用此方法进行应用程序全局配置)。 但这是我的方法。 I n my opinion a static map will be enough. (in my applications usually i use this method for application global configuration). But this is my approach.
  • 正如我上面所说,你实际上是在处理多对多关系。 因此,您将需要一个“人行横道”表。 这是你如何设置它: 1)电视桌将有TVID(主键,唯一),电视名称,数量,制造商等... 2)附件表将具有AccessoryID(主键,唯一),附件名称,数量,制造商等... 3)Crosswalk表将具有TVID和AccessoryID,没有主键。 您可以在此输入您可能拥有的每个TVID和AccessoryID组合。 例: TVID AccessoryID 12345 666 12345 ...
  • 您可以从表中检索值,将其放入变量中,然后使用脚本将varaibale值转换为SSIS参数。 不过,将XML格式化为像SSIS XML文件一样是一项巨大的好处。 You can retrieve values from the table, put it in variables, and using a script, transfer the varaibale values into the SSIS parameters. Having the XML formatted just like the ...
  • 我将分享我的经验,以便为配置管理器查找特定的wmi类或数据库表。 这可能不是最好的方式,但我发现它对我有帮助,可以得到我想要的东西。 获取WMI类: 在Debugview模式下打开CM管理控制台。 通过在控制台快捷方式属性目标标签的末尾添加sms:debugview很容易。 例如: “C:\ Program Files(x86)\ Microsoft Configuration Manager \ AdminConsole \ bin \ Microsoft.ConfigurationManagement. ...
  • 我认为最好的方法是通过继承UITableViewCell来创建自定义TableViewCell。 在这里,您需要提供@property并合成您要访问的标签并为其指定值。 然后你可以做的只是在tableView:cellForRowAtIndexPath:创建自定义单元格的对象,然后只将值分配给自定义单元格中的标签。 另外,我建议您以编程方式将标签添加到自定义单元类中,而不是通过XIB,因为这样可以节省一些复杂性。 这种方法的优点: 1)这种方法简化了复杂性,因为这使您可以更容易地进行与自定义单元格相关的未来 ...
  • 解决了: 转到运行 - > 运行配置 - > Java应用程序 - > 鼠标右键 - > 新建 。 在“ 名称”中键入配置的名称。 在项目中浏览到Android项目,选择它并单击“ 确定” 。 在Main Class中,浏览到DatabaseConfigUtil类*(扩展OrmLiteConfigUtil )*选择它并单击OK 。 单击JRE选项卡,然后选择1.5或1.6 JRE。 按Classpath选项卡,选择Bootstrap Entries (在我的例子中为Android 4.4) ,然后单击Rem ...
  • 第二点更可行。 此外,您可以拥有另一个服务层,它将负责保存映射部分和服务层之下,将有UI控制器层,它将实际将更改映射到其正在进行的呈现,即UI层。 I ended up with a config table for items called ITEM_CONFIG (ITEM_ID, UI_PROPERTIES) On the UI_Properties I save a JSON string, which is mapped to a String propertie on the DAO model ...