Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Load Data Infile.Необходима помощь с заполнением БД. / 16 сообщений из 16, страница 1 из 1
01.12.2014, 11:18:13
    #38821160
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Добрый день , уважаемые Знатоки и Пользователи!
Нужна помощь ,связанная с выполнением запроса на импорт данных из файла- LOAD DATA INFILE.

CREATE TABLE IF NOT EXISTS `Antenna`.`Znachenie` (
`ID` INT NOT NULL AUTO_INCREMENT,
`id_АФХ` INT NULL,
`kod_amplitudi` INT NULL,
`kod_fazi` INT NULL,
`amplituda` FLOAT NULL,
`faza` FLOAT NULL,
PRIMARY KEY (`ID`),

FOREIGN KEY (`id_АФХ`)
REFERENCES `Antenna`.`AFX` (`ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

Прошу не обращать особого внимания на атрибуты, интересует на данный момент только faza FLOAT и amplituda FLOAT

Есть текстовые файлы 1.amp .........N.amp по 1024 значения в столбик и соответственно 1.faz ....... N.faz тоже по 1024 значения в столбик в каждом файле.

Пробую загружать с помощью Load Data Infile ( синтаксисом запроса владею) но в итоге, файлы Амплитуды правильно загружаются по очереди в соответствующее поле и инкрементируются, а данные из файлов фаз загружаются как новые строки, т.е. прмерно вот так
ID..............amplituda................faza
1 .... .........1111111.0123..........Пусто
1024................1123123.0123..........Пусто
1025...................Пусто...............21322.123123
2048...................Пусто...............12321.111111

Прошу вашей помощи, очень нужно разобраться с этой загвосткой, возможно считывать массивы из файлов и загружать с помощью INSERT? Жду любой помощи,спасибо.
...
Рейтинг: 0 / 0
01.12.2014, 11:20:26
    #38821164
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon MephiПробую загружать с помощью Load Data Infile ( синтаксисом запроса владею)Показывайте.
...
Рейтинг: 0 / 0
01.12.2014, 11:23:36
    #38821173
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon Mephi,

1. Запросы вида insert - всегда добавляют новые записи. Если нужна не вставка, а обновление, то пользуют update или REPLACE. Можно ещё посмотреть в сторону ON DUPLICATE KEY ...

2. По вашей задаче, если не сильно "париться": залейте обе компоненты в отдельные и свои таблички из файлов, а потом добавьте из них запросами как надо и куда надо. Заодно можно будет проверять чего залилось, до добавления в рабочую версию...

Как-то так.
...
Рейтинг: 0 / 0
01.12.2014, 11:25:55
    #38821175
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
LOAD DATA INFILE 'Полный Путь' INTO TABLE znachenie LINES TERMINATED BY '\r\n' (amplituda)

Путь получаю программно с помощью CFile(немного не по теме).
Miksoft , прочитал все 8 страниц тем, в которых было упоминание этого запроса на форуме, пробовал разные ваши советы(коих было немало) в том числе и создания временной таблицы, но результат к сожалению такой же, могу сделать скрин как это выглядит в WorkBench.
Надеюсь на ваши наводки и подсказки.
...
Рейтинг: 0 / 0
01.12.2014, 11:29:17
    #38821183
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon MephiЕсть текстовые файлы 1.amp .........N.amp по 1024 значения в столбикВ приложенном файле 2048. Нужно грузить все или только первые 1024?
...
Рейтинг: 0 / 0
01.12.2014, 11:29:41
    #38821185
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Arhat1092. По вашей задаче, если не сильно "париться": залейте обе компоненты в отдельные и свои таблички из файлов, а потом добавьте из них запросами как надо и куда надо. Заодно можно будет проверять чего залилось, до добавления в рабочую версию...+1
...
Рейтинг: 0 / 0
01.12.2014, 11:30:22
    #38821187
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Arhat109unutcon Mephi,

1. Запросы вида insert - всегда добавляют новые записи. Если нужна не вставка, а обновление, то пользуют update или REPLACE. Можно ещё посмотреть в сторону ON DUPLICATE KEY ...

2. По вашей задаче, если не сильно "париться": залейте обе компоненты в отдельные и свои таблички из файлов, а потом добавьте из них запросами как надо и куда надо. Заодно можно будет проверять чего залилось, до добавления в рабочую версию...

Как-то так.
Спасибо за наводку,Arhat. Сейчас постараюсь освоить предложенные варианты.
Но все-таки файлов будет очень очень много, теоретически БД будет весить в районе 1ТБ.
Есть ли какие-нибудь варианты работы именно с файлами, не разбирая на массивы текстовые файлы?
...
Рейтинг: 0 / 0
01.12.2014, 11:33:58
    #38821191
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
miksoftunutcon MephiЕсть текстовые файлы 1.amp .........N.amp по 1024 значения в столбикВ приложенном файле 2048. Нужно грузить все или только первые 1024?
Пользователь указывает число файлов, соответственно с помощью цикла загружаются все значения амплитуды из N-го числа файлов.Действительно по 2048 строк в каждом файле , прошу прощения.Но если делать такой же цикл на файлы Фаз, то они ,соответственно, если мы загрузили N*2048 строк (амплитуда), фазы будут начинаться с N*2048+1 строки , как в небольшом примере в начале темы.
...
Рейтинг: 0 / 0
01.12.2014, 11:39:28
    #38821198
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Чтобы внести ясность проблемы небольшой скрин из Workbench.
Спасибо большое всем участвующим в топике.
...
Рейтинг: 0 / 0
01.12.2014, 12:00:34
    #38821233
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon MephiЕсть ли какие-нибудь варианты работы именно с файлами, не разбирая на массивы текстовые файлы?Так второй пункт у Arhat109 - именно об этом.
Не надо ничего разбирать.
1) Грузите в промежуточную таблицу(-ы) файлы N.amp, N.faz.
2) Переливаете SQL-запросом данные из промежуточной таблиц(ы) в основную.
3) Зачищаете промежуточную таблиц и переходите к пункту 1.
...
Рейтинг: 0 / 0
01.12.2014, 12:19:30
    #38821256
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Miksoft, Arhat109, Я ценю вашу помощь.
Я понял о чем вы говорите, и как писал выше, уже пытался это сделать.

1) Я могу загрузить в 2 разные промежуточные таблицы вида/ create table faza_temp(id INT AUTO_INCREMENT , faza FLOAT)/ и соответственно / create table amplituda_temp(id INT AUTO_INCREMENT, amplituda FLOAT)/.
Это уже делал.

2) В Одну промежуточную таблицу загружаю фазу, в другую таблицу загружаю амплитуду.
Теперь мне предстоит из промежуточных таблиц , с помощью запросов, перенести данные в главную таблицу.
Скажите пожалуйста, с учетом что у меня по 2048 строк в каждом файле,каким образом это реализовать? Куча Update? Или что-то другое? Напишите если можно.

3) Очистить таблицу и сбросить автоинкремент во временной таблице смогу, но "и переходите к пункту 1." мне кажется, или это значит что файлы надо загружать попарно? 1.faz+1.amp , затем 2.faz+2.amp.

Не хочу надоедать и раздражать, ночь занимался только этим, надеюсь на понимание.
...
Рейтинг: 0 / 0
01.12.2014, 12:23:29
    #38821264
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
INSERT INTO `date_name `.`znachenie` (`faza`)
SELECT `faza`
FROM `date_name`.`faza_temp` ;

Или с помощью подобной структуры?
...
Рейтинг: 0 / 0
01.12.2014, 12:23:35
    #38821265
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon Mephi,

странно. Делали и? почему "не получилось"?

Делаете 2 таблички, заливаете свои файлы в каждую из них, и, если записи по порядку соответствуют в обоих файлах друг другу, то заливаете их запросом insert - select джойня обе таблички промеж себя по иденту (порядку) записи в табличках.
Собственно, Фсё. :)
...
Рейтинг: 0 / 0
01.12.2014, 13:03:04
    #38821299
unutcon Mephi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
Miksoft, Arhat109 низкий Вам поклон.
14 часов просидел с этой проблемой без перерыва, с помощью ваших советов разобрался, еще раз большое Спасибо!
...
Рейтинг: 0 / 0
01.12.2014, 13:10:36
    #38821306
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon Mephi14 часов просидел с этой проблемой без перерываА надо было просто выспаться (это не сарказм, это серьезно). Задача-то нехитрая.
...
Рейтинг: 0 / 0
01.12.2014, 17:43:07
    #38821699
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Data Infile.Необходима помощь с заполнением БД.
unutcon MephiНо все-таки файлов будет очень очень много, теоретически БД будет весить в районе 1ТБ.Ну дык сделайте промежуточные таблицы temporary, можно ещё engine=memory для красоты прилепить.
Да и в любом случае - когда-то вам ведь всё равно придётся их чистить.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Load Data Infile.Необходима помощь с заполнением БД. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]