Конвейер копирования фабрики данных Azure с типом данных geography

Я пытаюсь получить тип данных географии из производственной БД в другую БД каждую ночь. Я действительно хотел использовать upsert в качестве активности записи, но, похоже, этот метод не поддерживает географию. Я читал аналогичный пост о переносе данных через ADF в качестве общеизвестного текстового типа данных, а затем об изменении его, но я продолжаю путаться в том, что делать с данными после того, как они перенесены в качестве общеизвестного типа данных. Буду рад любому совету, спасибо.

Пытался использовать конвейеры и потоки данных ADF. Пытался преобразовать тип данных, как только он оказался в месте назначения, но потом мне не удалось снова запустить конвейер.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Я попытался обновить данные с типом данных geography из одной базы данных SQL Azure в другую, используя действие копирования, и получил сообщение об ошибке.

  • Затем я сделал upsert, используя активность потока данных. Ниже приведены шаги.

  • Исходная таблица берется в потоке данных, как показано на рисунке ниже.

CREATE  TABLE SpatialTable
( id int ,
GeogCol1 geography,
GeogCol2 AS GeogCol1.STAsText() );

INSERT  INTO SpatialTable (id,GeogCol1)
VALUES (1,geography::STGeomFromText('LINESTRING(-122.360 46.656, -122.343 46.656 )', 4326));

INSERT  INTO SpatialTable (id,GeogCol1)
VALUES (2,geography::STGeomFromText('POLYGON((-122.357 47.653 , -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));

  • Затем выполняется преобразование Alter Row и в Alter Row Conditions Upsert, если задано isNull(id)==false(). (На основе идентификатора столбца таблица приемника изменена)

  • Затем в Sink задается набор данных для целевой таблицы. В настройках приемника метод обновления выбран как «Разрешить обновление» и указан требуемый столбец «Ключ». (Здесь выбран идентификатор столбца)

  • Когда конвейер запускается в первый раз, данные вставляются в целевую таблицу.

  • Когда конвейер запускается во второй раз путем обновления существующих данных и вставки новых записей в источник, данные вставляются правильно.

Исходные данные изменены для id=1 и вставлена ​​новая строка с id=3

Данные приемника отражают изменения, внесенные в источник.

Спасибо. Это именно то, что мне нужно, чтобы мой конвейер работал.

hunterjacob 29.11.2022 21:22

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