Привіт Я будівельний інженер, який має певний досвід програмування, але я не знайомий із широким спектром доступних сьогодні варіантів. Сподіваюсь, ви могли б дати мені будь-які вказівки найкращий спосіб продовжити.
Я хочу зробити і запитати базу даних вимірювань рівня наземного обстеження у форматі сітки. Буде проведено багато вимірювань для кожного місця сітки в різний час через землерийну роботу, тому існує четвертий вимір часу.
Спостереження, швидше за все, будуть прочитані з текстового файлу. У кожному записі буде розміщена сітка (2 x ціле число) (рядок і стовпець) (рівень з плаваючою точкою) наземний рівень та різні рядкові інформаційні коди (можливо, до 30 символів).
Сітки можуть мати приблизно 10000 рядків x 10000 стовпців. Не кожне місце розташування в сітці матиме запис у кожному опитуванні, але вони, як правило, мають до ста записів. Багато локальних мереж взагалі не матимуть записів (сайт не буде ідеально прямокутним).
Я хочу шукати записи, витягувати дані та робити обчислення, наприклад, обчислювати найнижчий чи найвищий рівень землі для кожного місця сітки. Я досить впевнений, що мав би можливість програмувати це досить просто на такій мові, як FORTRAN, BASIC або C, використовуючи масиви. Хоча багато елементів масиву будуть порожніми, і я здогадуюсь, що це не правильний спосіб зробити це, хоча великі бази даних, як це, потребують спеціальних інструментів, які мені доведеться навчитися користуватися.
Я думаю про можливі варіанти для платформи -
Використовуйте програму баз даних. Я не знаю, наскільки вони можуть бути потужними, але гадаю, що вони мали б великі витрати на GUI.
Використовувати SQL? Про це я мало знаю, але, здається, це мова для баз даних. Я завжди використовував імперативні мови, а не декларативні, і, як я розумію з Вікіпедії, що SQL є декларативним, я трохи нервую зміни. Я не повністю розумію процес його використання. Чи є компілятор, який робить консольні програми? Чи зберігається база даних на диску? Вибачте за такі дурні питання.
Використовуєте такий API, як c-treeACE? Я думаю, що це може бути шлях, який пропонує мені ознайомлення з мовою "зроби це, тоді зроби це" (на жаль, це саме так, як я думаю як інженер!). Але я сподіваюся, що закулісне управління пам’яттю та обробкою процесів, що пропонується API, буде кращим за те, що я міг би досягти з величезними масивами.
Або я можу це зробити з об'єктно-орієнтованою мовою, і нехай комп'ютер переживає про вимоги до пам’яті. наприклад, якби я зберігав записи як об’єкти із методами та властивостями, які допомогли б мені отримати результати, які мені потрібні, з кожного запису - чи буде це величезна роздута програма порівняно з 3)
Записів, ймовірно, сотні мільйонів, і я хочу мати можливість запитувати та обробляти їх за кілька хвилин, а не годин (бажано, секунд!) На сучасному комп'ютері під керуванням Windows. Якщо точніше, моя i7 - процесор i7 з 6 Гб оперативної пам’яті та 120 Гбіт SSD під керуванням Windows 7 64 біт.
Сподіваюся, хтось встигне поділитися парочкою слів мудрості з новачком.