使用 TiSpark 读取 TiFlash

TiSpark 目前提供类似 TiDB 中 engine 隔离的方式读取 TiFlash,方式是通过配置参数 spark.tispark.isolation_read_engines。参数值默认为 tikv,tiflash,表示根据 CBO 自动选择从 TiFlash 或从 TiKV 读取数据。如果将该参数值设置成 tiflash,表示强制从 TiFlash 读取数据。

使用 TiSpark 读取 TiFlash - 图1

注意

设为 tiflash 时,所有查询的表都会只读取 TiFlash 副本,设为 tikv 则只读取 TiKV 副本。设为 tiflash 时,要求查询所用到的表都必须已创建了 TiFlash 副本,对于未创建 TiFlash 副本的表的查询会报错。

可以使用以下任意一种方式进行设置:

  1. spark-defaults.conf 文件中添加:

    1. spark.tispark.isolation_read_engines tiflash
  2. 在启动 Spark shell 或 Thrift server 时,启动命令中添加 --conf spark.tispark.isolation_read_engines=tiflash

  3. Spark shell 中实时设置:spark.conf.set("spark.tispark.isolation_read_engines", "tiflash")

  4. Thrift server 通过 beeline 连接后实时设置:set spark.tispark.isolation_read_engines=tiflash