为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.7
- 【问题描述】:
我们Hive库和TiDB库有些库名和表名是相同的,同一份数据存了两份,一份在TiDB,一份在Hive。
我打算从TiDB中读取数据,用TiSpark进行分析,分析完之后,把结果写入到Hive中。
如果不加enableHiveSupport的话,那么TiSpark读取的是TiDB的库和表,如果加上了enableHiveSupport,就会读取Hive的库和表。
我的问题是,
1、读取数据的时候,怎么区分hive的库和表,以及TiDB的库和表?
2、写出数据的时候,如何写到Hive?如果我加了enableHiveSupport,是可以写入到Hive 但读到的就是Hive的表,不是TiDB的表了。如果我不加enableHiveSupport,就没办法写入到Hive了。
3、请问用下图这种方式从TiDB读数据的话,TiSpark是直接从TiKV读的数据,还是通过jdbc的方式读的数据?关键是速度如何?如果我加上enableHiveSupport,同时使用这种方式读数据,然后让Spark用正常的方式写Hive的话,应该可以实现从TiDB读数据,TiSpark分析完之后写Hive的。问题的关键在于这种方式TiSpark从TiDB读取数据的速度。
4、或者如下图,我用enableHiveSupport,同时把hive-site中的meta给注释掉?这样是不是就可以默认从tidb读数据,然后spark.sql( insert into HiveTable )了?