Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

У поточній завдання знадобилася база регіонів та міст. Оскільки бази у відкритому доступі старі, можуть містити помилки, неточні дані і просто не з першоджерела - вирішено було знайти джерело даних і імпортувати до себе в базу.

Я скачав базу в форматі DBF (не знаю добре це чи погано), вагою 1 ГБ (в форматі XML вона на 500 МБ більше). Далі постало питання чим цю базу відкрити і що з нею робити, адже LINQ і Entity Framework просто так з DBF не працюють. Однак приємно побачимо, коли вдалося відкрити звичайним Excel (НЕ Access)

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Відкриваємо SQL Server Management Studio, вибираємо базу куди необхідно імпортувати вибрані таблиці: Tasks> Import Data.

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

У діалозі в якості Data Source вибираємо .Net Framework Data Provider for Odbc. Далі необхідно вказати рядок підключення до бази. Це окрема історія. Цей рядок підключення я створював раніше в Visual Studio, намагаючись підключитися до файлу безпосередньо.

Створення рядка підключення до DBF в Visual Studio

Натискаємо "Add Connection". Як Data Source вибираємо

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

В Data Source Specification> Use Connection String> Build. Створюємо (вибираємо) джерело даних. Для початку його необхідно створити.

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Після всіх маніпуляцій вийде таке діалогове вікно з готовою рядком підключення. Її потрібно скопіювати, і вставити в MS SQL Server Management.

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

продовжуємо імпорт

Вставляємо рядок підключення до бази даних в діалогове вікно і тиснемо . Вона автоматично розпарсити і поля самі підставили в потрібні комірки.

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

На другому кроці вибираємо базу призначення

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Я міняю тип 22 на varchar. а 23 на date з довжиною як у вихідній базі. Вийде приблизно наступне:

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Після успішної настройки mapping відбудеться процедура імпорту, триває вона кілька хвилин.

Обробляємо базу міст ФІАС (колишній КЛАДР) на c #

Робота з даними

Звичайно імпорт з DBF в MS SQL цікаве заняття але толку він цих даних не дуже багато без попередньої обрабокі.

Для того, щоб отримати список регіонів (суб'єктів РФ) необхідно виконати стандартні процедури по налаштуванню Entity Framework. Далі наступний код повертає список регіонів.

Для в кожному регіоні є REGIONCODE - код регіону. Його слід запам'ятати, за цим кодом можна легко і зручно отримати міста.

Таким чином можна зробити свою базу регіонів і міст у форматі SQL Server