如何加快Veeva CRM的Spark读取



我正在使用Databricks中的Spark读取Veeva CRM的数据。我使用spark.read.format("springml....")虽然我不完全确定,但是这种读取是否发生在单个线程上,就像JDBC读取一样,或者不是这样?有什么方法可以加快读取过程吗?

我尝试在分区键上使用numpartition,但我不知道Veeva CRM是否将任何列存储为索引。这并没有加速读取。

当你加快速度时,总是有一个权衡。可能的情况是,单线程的事情更安全,所以你的Veeva CRM不会受到连接/数据请求的打击。您可以使用用于加速类似JDBC连接的相同技巧。您可以将所需的数据划分为mapPartitions,然后在mapPartition传递的函数中使用手动JDBC调用(您不能在mapPartitions中使用spark context)来提取数据。

您需要小心选择分区策略,因为您可能会DDOS您的veeva CRM。可以尝试一下,但如果是操作系统,请注意。

最新更新