Рекомендации по локальным шлюзам данных для назначений данных в Dataflow 2-го поколения
В этой статье рассматриваются ограничения и рекомендации при использовании шлюза данных с сценариями назначения данных в потоке данных 2-го поколения.
Время ожидания оценки
Потоки данных, использующие шлюз и функцию назначения данных, ограничены вычислением или обновлением в течение одного часа.
Дополнительные сведения об этом ограничении см. в статье об устранении неполадок локального шлюза данных.
Проблемы с сетью с портом 1433
При использовании Потока данных Microsoft Fabric 2-го поколения с локальным шлюзом данных могут возникнуть проблемы с процессом обновления потока данных. Основная проблема возникает, когда шлюз не может подключиться к промежуточному потоку данных Lakehouse, чтобы считывать данные перед копированием в нужное место назначения данных. Эта проблема может возникать независимо от типа используемого назначения данных.
Во время общего обновления потока данных обновление таблиц может отображаться как "Успешно", но в разделе действий отображается сообщение "Сбой". Сведения об ошибке WriteToDatabaseTableFrom_...
действия указывают на следующую ошибку:
Mashup Exception Error: Couldn't refresh the entity because of an issue with the mashup document MashupException.Error: Microsoft SQL: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - An attempt was made to access a socket in a way forbidden by its access permissions.) Details: DataSourceKind = Lakehouse;DataSourcePath = Lakehouse;Message = A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - An attempt was made to access a socket in a way forbidden by its access permissions.);ErrorCode = -2146232060;Number = 10013
Примечание.
С точки зрения архитектуры подсистема потоков данных использует исходящую конечную точку HTTPS (порт 443) для записи данных в Lakehouse. Однако для чтения данных из Lakehouse требуется использование протокола TDS (TCP через порт 1433). Этот протокол используется для копирования данных из промежуточного озера в место назначения данных. Это объясняет, почему шаг загрузки таблиц завершается успешно, пока действие назначения данных завершается сбоем, даже если оба озера находятся в одном экземпляре OneLake.
Устранение неполадок
Чтобы устранить эту проблему, сделайте следующее:
Убедитесь, что поток данных настроен с назначением данных.
Убедитесь, что обновление потока данных завершается ошибкой, при этом таблицы обновляются как "Успешно" и действия, отображающиеся как "Сбой".
Просмотрите сведения об ошибке для действия
WriteToDatabaseTableFrom_...
, предоставляющего сведения об обнаруженной ошибке.
Решение. Настройка новых правил брандмауэра на сервере под управлением шлюза
Правила брандмауэра на сервере шлюза и (или) прокси-серверах клиента необходимо обновить, чтобы разрешить исходящий трафик с сервера шлюза следующим образом:
- Протокол: TCP
- Конечные точки: *.datawarehouse.pbidedicated.windows.net, *.datawarehouse.fabric.microsoft.com, *.dfs.fabric.microsoft.com
- Порт: 1433
Примечание.
В некоторых сценариях, особенно если емкость находится в регионе, который не является ближайшим к шлюзу, может потребоваться настроить брандмауэр, чтобы разрешить доступ к нескольким конечным точкам (*cloudapp.azure.com). Эта корректировка необходима для размещения перенаправлений, которые могут возникнуть в этих условиях. Если трафик, предназначенный для *.cloudapp.azure.com, не перехватывается правилом, можно также разрешить IP-адреса для региона данных в брандмауэре.
Если вы хотите сузить область конечной точки до фактического экземпляра OneLake в рабочей области (вместо дикого карта *.datawarehouse.pbidedicated.windows.net), этот URL-адрес можно найти, перейдя к рабочей области Fabric, поиску DataflowsStagingLakehouse
и выбору сведений о представлении. Затем скопируйте и вставьте строка подключения SQL.
Имя всей конечной точки выглядит примерно так:
x6eps4xrq2xudenlfv6naeo3i4-l27nd6wdk4oephe4gz4j7mdzka.datawarehouse.pbidedicated.windows.net
Обходное решение. Разделение потока данных в отдельном приеме и загрузке потока данных
Если не удается обновить правила брандмауэра, можно разделить поток данных на два отдельных потока данных. Первый поток данных отвечает за прием данных в промежуточное озеро. Второй поток данных отвечает за загрузку данных из промежуточного lakehouse в место назначения данных. Это решение не идеально подходит, так как требуется использовать два отдельных потока данных, но его можно использовать в качестве временного решения, пока не будут обновлены правила брандмауэра.
Чтобы реализовать это обходное решение, выполните следующие действия.
Удалите назначение данных из текущего потока данных, который отправляет данные через шлюз.
Создайте новый поток данных, использующий соединитель потока данных для подключения к потоку данных приема данных. Этот поток данных отвечает за прием данных из промежуточного хранения в назначение данных.
Задайте назначение данных в качестве назначения данных, выбранного для этого нового потока данных.
При необходимости можно отключить промежуточное хранение для этого нового потока данных. Это изменение предотвращает копирование данных в промежуточное lakehouse еще раз и вместо этого копирует данные непосредственно из потока данных в место назначения данных.