Azure Synapse, вопросы по проектированию внешних или внутренних таблиц

Я разрабатываю Dataware house в Azure Synapse с использованием пула SQL, но столкнулся с некоторыми вопросами проектирования.

Контекст: я планирую загружать файлы секционированного паркета с помощью Azure Data Lake Storage (ADLS), а затем с помощью пула SQL создавать внешние таблицы для запросов к этим файлам.

Мои вопросы:

  • Лучше ли с точки зрения производительности предоставить решение только с внешними таблицами? то есть без создания внутренних таблиц, ни CTAS, BCP, ни методов копирования из ADLS в хранилище в БД.
  • Можно ли выполнять секционирование во внешних таблицах? достаточно ли организовать паркет по папкам с именами по дате?
  • Как это влияет на параллелизм пользователей с внешними и внутренними таблицами? некоторые опытные рекомендации?.

Спасибо за ваше время. Джош

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Is it better in terms of performance to provide the solution just with the external tables?

Нет. Внутренние таблицы — это распределенные хранилища столбцов с несколькими уровнями кэширования, которые обычно превосходят по производительности внешние паркетные таблицы. Внутренние таблицы дополнительно поддерживают сканирование в пакетном режиме, упорядочивание столбцов, исключение сегментов и разделов, материализованные представления и кэширование наборов результатов.

Is it possible to perform partitioning in external tables?

В настоящее время это невозможно в выделенных пулах SQL, см. Удаление раздела папки.

How does affect the user concurrency to the external tables and the internal tables?

Параллелизм — это вопрос производительности запросов. Чем быстрее выполняются ваши запросы, тем быстрее сеансы отказываются от своего слота параллелизма. Таким образом, все, что повышает производительность запросов, улучшает эффективный параллелизм (количество одновременных пользователей, которое вы можете поддерживать при разумном времени выполнения запроса).

Бессерверные пулы SQL в настоящее время имеют более продвинутые возможности для работы с данными, хранящимися как Parquet или Delta в Data Lake.

Спасибо за ваш ценный ответ.

Joshua Blanco 27.04.2022 17:16

Другие вопросы по теме