Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL和HBase之间转换(同步)数据_Sql Server_Hadoop_Relational Database_Key Value Store_Structured Data - Fatal编程技术网

Sql server 在SQL和HBase之间转换(同步)数据

Sql server 在SQL和HBase之间转换(同步)数据,sql-server,hadoop,relational-database,key-value-store,structured-data,Sql Server,Hadoop,Relational Database,Key Value Store,Structured Data,我们正在彻底改造我们的产品,从微软和.NET家族完全转向开源(原因之一是成本削减和数据的指数级增长) 我们计划将数据模型完全从SQLServer(关系数据)转移到Hadoop(著名的键值对生态系统) 首先,我们希望支持这两个版本(比如1.0和新的v2.0)。为了保持数据的一致性,我们计划在两个系统之间同步数据,这是一项相当具有挑战性的任务,而且容易出错,但我们没有其他选择 有点困惑从哪里开始,我仰望着专家社区。 这方面的任何策略/现有文献或任何其他类型的指导都将非常有用。考虑使用Flume之类的

我们正在彻底改造我们的产品,从微软和.NET家族完全转向开源(原因之一是成本削减和数据的指数级增长)

我们计划将数据模型完全从SQLServer(关系数据)转移到Hadoop(著名的键值对生态系统)

首先,我们希望支持这两个版本(比如1.0和新的v2.0)。为了保持数据的一致性,我们计划在两个系统之间同步数据,这是一项相当具有挑战性的任务,而且容易出错,但我们没有其他选择

有点困惑从哪里开始,我仰望着专家社区。
这方面的任何策略/现有文献或任何其他类型的指导都将非常有用。

考虑使用Flume之类的排队工具(http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/)在两个系统之间分割输入

考虑使用Flume之类的排队工具(http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/)在两个系统之间分割输入

我不完全确定代码的结构,但是如果您当前有一个数据库访问类,或者至少有一个数据库访问类,所有SQL都是通过该类执行的,那么您可以重写save函数来写入对这两个数据库的更改。如果没有数据层,则可能需要考虑在开始转换之前编写一个数据层

否则,您可以添加MSSQL来更新Hadoop,但不确定如何在Hadoop中保持MSSQL同步

或者,您可以有一个每x分钟运行一次的进程,手动同步两个数据库

就我个人而言,我会尽量避免维护两个记录数据库。将更改从一个新的、实验性的数据库移动到稳定的数据库似乎有风险。你有可能破坏你稳定的系统。相反,我将编写一个转换器,将数据从关系数据库移动到Hadoop。然后,每天晚上左右,将数据复制到Hadoop中,并将其用于新系统的开发和测试。如果你说你的测试版只是一个测试平台,不会影响你的产品,我想测试用户会理解的。如果您计划对UI进行重大更改,并且担心有些人不想过渡到2.0,那么您可能试图一次解决太多问题


这些就是我想出的解决办法。。。祝你好运

我不完全确定代码的结构,但是如果您当前有一个数据库访问类,或者至少有一个数据库访问类,所有SQL都是通过该类执行的,那么您可以重写save函数来写入对这两个数据库的更改。如果没有数据层,则可能需要考虑在开始转换之前编写一个数据层

否则,您可以添加MSSQL来更新Hadoop,但不确定如何在Hadoop中保持MSSQL同步

或者,您可以有一个每x分钟运行一次的进程,手动同步两个数据库

就我个人而言,我会尽量避免维护两个记录数据库。将更改从一个新的、实验性的数据库移动到稳定的数据库似乎有风险。你有可能破坏你稳定的系统。相反,我将编写一个转换器,将数据从关系数据库移动到Hadoop。然后,每天晚上左右,将数据复制到Hadoop中,并将其用于新系统的开发和测试。如果你说你的测试版只是一个测试平台,不会影响你的产品,我想测试用户会理解的。如果您计划对UI进行重大更改,并且担心有些人不想过渡到2.0,那么您可能试图一次解决太多问题


这些就是我想出的解决办法。。。祝你好运

你每天有多少修改数据?请看我的另一个查询你每天有多少修改数据?请看我的另一个查询你是对的。进行双向同步会破坏我们稳定的数据库。我们决定保持它的单向性。并为新版本保留一个中间队列。如果用户想要试验新的测试版,他的数据最终将同步到稳定的数据库。在这种情况下,我们必须抓住难得的数据不一致的机会。但这是暂时的。谢谢贾斯汀-平移双向同步似乎有风险。我们决定保留一个内存集中缓存的中心点,负责同步两个不同的数据存储库(有一些中间适配器/转换器)。Justin,请你也检查一下,你是对的。进行双向同步会破坏我们稳定的数据库。我们决定保持它的单向性。并为新版本保留一个中间队列。如果用户想要试验新的测试版,他的数据最终将同步到稳定的数据库。在这种情况下,我们必须抓住难得的数据不一致的机会。但这是暂时的。谢谢贾斯汀-平移双向同步似乎有风险。我们决定保留一个内存集中缓存的中心点,负责同步两个不同的数据存储库(有一些中间适配器/转换器)。Justin,请您也检查一下