Я выполняю следующий 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