SQL-запрос медленнее в лазурных кубиках данных - PullRequest
0 голосов
/ 29 ноября 2018

Я выполняю следующий SQL-запрос в кирпичах данных Azure, используя блокнот SQL, он выполняется в течение 40 секунд, в то время как тот же запрос выполняется в течение 4 секунд в базе данных Azure. Как ускорить выполнение запроса в кирпичах данных Azure. Я использовалПриведенный ниже метод для соединения таблицы между базой данных Azure и блоками данных

-- Create Table
CREATE TABLE SalesRep
USING org.apache.spark.sql.jdbc
OPTIONS (
url 'jdbc:sqlserver://#SERVERNAME#.database.windows.net:1433;database=AdventureWorksLT',
dbtable 'SalesLT.SalesRep',
user '#USERNAME#',
password "#PASSWORD#"
);

Sql-запрос

select  i.*
FROM 
Invoice I
INNER JOIN InvoiceLineItem ILT  ON I.InvoiceRecordId=ILT.InvoiceRecordId   
INNER JOIN part ON part.[parent part]=ILT.PartNumber
WHERE
part.[item nbr] ='12X-33-xx'

Можем ли мы создать индекс в блоках данных Azure, поскольку запрос, выполняемый в базе данных Azure, используетиндекс запрос быстрее, есть ли альтернатива индексированию в лазурных блоках данных или есть какая-то другая причина для низкой производительности в блоках данных

Cluster configuration
Databricks Runtime Version
4.1 (includes Apache Spark 2.3.0, Scala 2.11)
Python Version
3
Driver Type
28.0 GB Memory, 8 Cores, 1.5 DBU Standard_DS4_v2
Worker Type
112.0 GB Memory, 16 Cores, 4 DBU Standard_DS14_v2
Min Workers
1
Max Workers
15
...