пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Графовые базы данных (Graph databases) – это нереляционные системы (NoSQL), которые определяют корреляции между сложно взаимосвязанными сущностями. Такая структура позволяет обойти ограничения реляционных БД и уделяет больше внимания отношениям между данными. Графовая база данных позволяет аккуратно определять взаимосвязи и дает ответы на сложные вопросы о том, как точки данных соотносятся друг с другом. В данной статье объясняется, что такое графовые базы данных, и как они работают. Но для начала можно быстро познакомиться с другими видами NoSQL. Что такое графовая база данных? Графовая база данных – это нереляционный тип баз данных, основанный на топографической структуре сети. Идея этой БД восходит к математической теории графов. Графы представляют наборы данных в виде узлов, ребер и свойств. Узлы, или точки (nodes) – это экземпляры или сущности данных; ими является любой объект, который вы планируете отслеживать. Например, люди, заказчики, подразделения и т.д. Ребра, или линии (edges) – это важнейшие концепции в графовых БД. Они отображают взаимосвязь между узлами. Эти связи имеют направление и могут быть одно- или двунаправленными. Свойства (properties) содержат описательную информацию, связанную с узлами. В некоторых случаях свойства бывают и у ребер. Узлы с пояснительными свойствами создают взаимосвязи, представленные через ребра. Графовые БД предлагают концептуальное представление данных, тесно связанных с реальным миром. Моделировать сложные связи гораздо проще, поскольку отношениям между точками данных уделяется такое же внимание, как и самим данным. Сравнение графовых и реляционных баз данных Графовые БД не создавались для замены реляционных БД. Стандартом отрасли на текущий момент считаются реляционные БД. Но перед этим важно понять, что может предложить та или иная разновидность систем. Реляционные базы данных обеспечивают структурированный подход к данным, а графовые БД считают более гибкими и ориентированы на быстрое понимание взаимосвязей между данными. Графовые и реляционные БД имеют свою область применения. Сложные взаимосвязи лучше реализовать через графовые БД, поскольку их возможности превосходят традиционные реляционные СУБД. При создании моделей баз данных в реляционных системах MySQL или PostgreSQL требуется тщательное планирование, а в графовых используется более естественный и гибкий подход к данным. В таблице ниже приведены ключевые отличия между графовыми и реляционными БД: Тип Графовые БД Реляционные БД Формат Узлы и ребра со свойствами Таблицы со строками и столбцами Связи Представлены в виде ребер между узлами Создаются с помощью внешних ключей между таблицами Гибкость Гибкие Жестко заданные Сложные запросы Быстрые и отзывчивые Необходимы сложные соединения Варианты использования Системы с взаимосвязанными зависимостями Системы с транзакциями и более простыми отношениями Как работают графовые базы данных? Графовые базы данных одинаково относятся к данным и взаимосвязям между ними. Связанные узлы физически связываются, и эта связь рассматривается как часть данных. При таком моделировании данных вы можете запрашивать взаимосвязи также, как и сами данные. Вместо вычисления и запросов на подключение, графовые БД считывают взаимосвязи напрямую из хранилища. По гибкости, производительности и адаптивности графовые БД близки к другим нереляционным моделям данных. В них, как и в других нереляционных БД, отсутствуют схемы, что делает данную модель гибкой и легко изменяемой. Примеры использования графовых баз данных Есть много примеров, когда графовые БД превосходят все прочие методы моделирования данных. Среди таких примеров можно выделить: Рекомендательные сервисы в режиме реального времени. Динамичные рекомендации по продуктам и электронным товарам улучшают пользовательский опыт и максимизируют прибыль. Из известных компаний можно упомянуть Netflix, eBay и Walmart. Управление основными данными. Привязка всех данных к одной общей точке обеспечивает постоянство и точность данных. Управление основными данными крайне важно для крупномасштабных компаний мирового уровня. GDPR и соблюдение нормативных требований. С графами гораздо проще управлять безопасностью и отслеживать перемещение данных. Базы данных снижают вероятность утечки информации и обеспечивают большую согласованность при удалении данных, чем повышается общее доверие к конфиденциальной информации. Управление цифровыми ресурсами. Объем цифрового контента просто огромен и постоянно растет. Графовые БД предлагают масштабируемую и простую модель данных, позволяющую отслеживать цифровые ресурсы: документы, расчеты, контракты и т.д. Контекстно-зависимые сервисы. Графы помогают в предоставлении сервисов, приближенных к актуальным характеристиками мира. Будь то предупреждения о стихийных бедствиях, информация о пробках или рекомендации по товарам для конкретного местоположения, – графовые базы данных предлагают логическое решение для реальных обстоятельств. Выявление мошенничества. Поиск подозрительных закономерностей и раскрытие мошеннических платежных схем выполняется в режиме реального времени. Выявление и изоляция частей графа позволяет быстрее обнаружить мошенническое поведение. Семантический поиск. Обработка естественного языка бывает неоднозначной. Семантический поиск помогает определить значение ключевых слов и выдает более подходящие варианты, которые, в свою очередь проще отобразить с помощью графовых БД. Сетевое управление. Сети – это не что иное, как связанные графы. Графовые БД снижают время, необходимое для оповещения сетевого администратора о проблемах в сети. Маршрутизация. Информация передается по сети за счет поиска оптимальных маршрутов, и это делает графовые БД идеальным вариантом для маршрутизации. Какие есть известные графовые базы данных? С ростом больших данных и аналитики в соцсетях популярность графовых БД возрастает. Моделирование графов поддерживает множество многомодельных БД. Кроме того, доступно много нативных графовых БД. JanusGraph JanusGraph – это распределенная, масштабируемая система графовых БД с открытым кодом и широким набором возможностей по интеграции и аналитике больших данных. Ниже приведен перечень основных функций JanusGraph: Поддержка ACID-транзакций с возможностью одновременного обслуживания тысяч пользователей Несколько вариантов хранения графических данных, включая Cassandra и HBase Встроенный сложный поиск, а также дополнительная (опциональная) поддержка Elasticsearch Полная интеграция Apache Spark для расширенной аналитики данных JanusGraph использует полный по Тьюрингу язык запросов для обхода графов Neo4j Neo4j (Network Exploration and Optimization 4 Java, что переводится как «исследование сети и оптимизация для Java») – это графовая база данных, написанная на Java с нативным хранением и обработкой графов. Основные возможности: Масштабируемость БД за счет разделения данных на части – сегменты Высокая доступность благодаря непрерывному резервному копированию и последовательным обновлениям Высокий уровень безопасности: несколько экземпляров баз данных можно разделить, оставив их на одном выделенном сервере Neo4j использует Cypher – язык запросов для графовых БД, который очень удобен для программирования DGraph DGraph (Distributed graph, что переводится как «распределенный граф») – это распределенная система графовых БД с открытым исходным кодом и хорошей масштабируемостью. Вот несколько интересных возможностей DGraph: Горизонтальная масштабируемость для работы в реальной среде с ACID-транзакциями DGraph – это свободно распространяемая система с поддержкой множества открытых стандартов Язык запросов – GraphQL, который был разработан для API DataStax Enterprise Graph DataStax Enterprise Graph – это распределенная графовая БД на базе Cassandra. Она оптимизирована под предприятия. Несколько функций: DataStax обеспечивает постоянную доступность для корпоративных нужд База данных легко интегрируется с автономной платформой Apache Spark Полная интеграция аналитики и поиска в реальном времени Масштабируемость за счет наличия нескольких центров обработки данных Поддержка Gremlin и CQL для запросов Плюсы и минусы графовых баз данных В каждом типе баз данных есть свои плюсы и минусы. Именно поэтому так важно понимать отличия между моделями и доступные возможности для решения конкретных проблем. Графовые БД – это развивающаяся технология с целями, отличными от других типов БД. Плюсы Вот несколько плюсов графовых баз данных: Гибкая и адаптивная структура Четкое представление взаимосвязей между сущностями Запросы выводят результаты в реальном времени. Скорость зависит от количества связей Минусы Ниже перечислены основные минусы системы: Отсутствует стандартизированный язык запросов. Язык зависит от используемой платформы Графы не подходят для систем на основе транзакций Небольшая база пользователей; при возникновении проблема сложно получить поддержку Заключение Графовые базы данных – это отличный подход для анализа сложных отношений между объектами данных. Быстрота запросов и результаты в режиме реального времени хорошо вписываются в требования современных и стремительно растущих исследований данных. Графы – это развивающаяся технология, которую ждет еще много улучшений.
img
Будущее за удалённой работой! Давайте рассмотрим безопасную утилиту для совместного использования ресурсов, документов и компьютера. Что такое Chrome Remote Desktop? Многие организации и стартапы предоставили возможность своему сотруднику работать удаленно. Заметив эту тенденцию Google решила представить простой и быстрый инструмент для доступа к системе из любого места. Для работы удаленной системы на собственном ПК требуется только две вещи: Интернет и Chrome Desktop. Эта утилита облегчает удаленный доступ к файлам и данным с другого устройства. Он работает на всех типах настольных или мобильных ПК и со всеми операционными системами - Windows, Linux, macOS или Chrome OS. Итог - вы можете получить доступ к компьютеру из любой точки мира, где есть Интернет. Почему Chrome Remote Desktop? Он бесплатный! Он быстрый и легковесный Дружественный интерфейс Вы можете удалённо помогать друзьями и родным Давайте рассмотрим поближе этот дружелюбный инструмент. Начало работы с Chrome Remote Desktop Для начала работы с Chrome Remote Desktop достаточно выполнить всего 4 простых шага.: Для этого необходимо загрузить и установить браузер Chrome на ПК или мобильное устройство, чтобы получить к нему доступ из любого места. 1. Загрузить Chrome Remote Desktop Откройте веб-страницу Chrome Remote Desktop в браузере Chrome. Вы перейдете на страницу загрузки. В правом нижнем углу появится опция со стрелкой синего цвета для загрузки плагина. Нажмите кнопку, чтобы начать загрузку. 2. Установка Chrome Remote Desktop После загрузки надпись на кнопке на той же странице, поменяется на Accept & Install чтобы принять условия и начать установку. Нажмите на кнопку для продолжения. 3. Выберите имя устройства и пароль После нажатия кнопки установки необходимо ввести имя устройства, которое будет отображаться для удаленных пользователей во время доступа к хост-устройству. После ввода имени устройства необходимо ввести минимум 6-тизначный пин-код, чтобы сделать удаленный доступ более безопасным и предотвратить несанкционированный доступ к устройству. 4. Запуск приложения После нажатия кнопки Start хост-устройство готово установить или принять удаленные подключения. Работа с удаленной поддержкой Google предоставляет функцию использования Google Remote Desktop без установки. На той же странице нажмите кнопку Удаленная поддержка. Появится экран с двумя опциями ниже. Получение поддержки Она позволяет пользователям запрашивать разовую поддержку у любого пользователя, известного или неизвестного. Параметр "Получить поддержку" доступен только в том случае, если в системе установлен Google Remote Desktop. Чтобы получить поддержку, нажмите кнопку "Generate code"; он создаст одноразовый пароль для совместного использования удаленными пользователями. Щелкните прямоугольное поле, чтобы скопировать одноразовый код. Этот код будет действителен в течение 5 минут. После отмены генерируется новый код. Удаленный пользователь будет использовать предоставленный одноразовый код для доступа к клиентской системе. Оказание поддержки Это помогает удаленным пользователям получать доступ к другим машинам и предоставлять удаленную поддержку. Для обеспечения поддержки удаленным пользователям потребуется одноразовый код доступа, сгенерированный на машине клиента. Пользователь клиента должен генерировать код доступа (этап 2 выше) и поделиться им с удаленным пользователем, чтобы удаленный пользователь мог работать на машине клиента. Получив код доступа от узла клиента, удаленный узел должен перейти на веб-страницу Google Chrome Remote Desktop и получить доступ к удаленной поддержке. Удаленный пользователь должен ввести заданный код доступа в текстовой строке "Give Support" и нажать кнопку "Connect". После нажатия кнопки подключения на удаленной стороне появится запрос на подтверждение. После того как удаленный пользователь разрешил и нажал на кнопку “Share”, он может получить доступ к клиентской машине и управлять ею. Удаленный доступ с помощью мобильного устройства (Android/iOS) Google предоставила возможность доступа к удаленному ПК через мобильные устройства. Установив на устройство на базе iOS или Android, пользователи могут использовать мобильные устройства для работы с удаленными ПК. Обратите внимание, что перед использованием мобильного приложения идентификатор электронной почты пользователя, используемый на телефоне, должен быть зарегистрирован на Chrome Remote Desktop; в противном случае приложение отобразит сообщение "Вам не к чему подключиться, сначала нужно настроить компьютер для удаленного доступа". Действия по подключению ПК с мобильного устройства После настройки компьютера для удаленного доступа на экране появится список подключенных компьютеров. После щелчка по одному из перечисленных компьютеров появится сообщение "Подключение к удаленному компьютеру". При регистрации системы с помощью Chrome Remote Desktop запросит ввод пин-кода удаленной системы. После этого пользователь сможет получить доступ к собственной системе через мобильное устройство. При доступе к удаленной системе в правом нижнем углу появится синяя кнопка. При нажатии на кнопку отображается доступные функции для работы на удаленном компьютере. Показать клавиатуру: Это поможет пользователю написать что-либо на удаленной системе. Режим трекпада/сенсорной панели: выбор режима трекпада для ограничения просмотра пользователями только страницы. В отличие от этого, режим сенсорной панели помогает щелкнуть и выполнить любое действие на удаленной системе. Отключить: щелкните, чтобы отключить удаленный доступ к системе. Настройки: даст возможность изменить размер экрана и другие опции для настройки. Dock Left: Будет сдвигать синюю кнопку слева вниз или справа вниз Чего не хватает утилите? Не поддерживается копирование файлов между устройствами методом перетаскивания Отсутствует функции чата или обмена сообщениями. Пользователь должен использовать другое устройство для подключения и объяснения проблемы Не поддерживается использование нескольких мониторов Нет возможности для обслуживания и просмотра нескольких подключений. Пользователи могут одновременно подключаться к одной системе Заключение Несмотря на недостатки, данная утилита может помочь при решении проблем удаленных пользователей. А главное – это бесплатно, так что стоит попробовать его на деле.
img
Что это вообще такое? Docker Compose является инструментом для определения и запуска контейнерных приложений. С Compose вы получаете возможность настраивать службы используя файл YAML. С помощью одной команды Compose вы создаете и запускаете все службы в соответствии с вашей конфигурацией. Установка начинается с создания каталога проекта: $ mkdir composetest $ cd composetest Создайте файл под названием app.py и вставьте в него следующие данные: import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times. '.format(count) В нашем случае название хоста - redis, который использует порт 6379. Создайте файл под названием needs.txt в каталоге вашего проекта и вставьте его в: flask Redis Теперь следует написать код для файла Dockerfile, содержащий все необходимые переменные для среды разработки. В каталоге вашего проекта создайте файл с именем Dockerfile (файл будет определять среду приложения) и вставьте следующее содержимое: FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] Определение сервисов осуществляется при создании файла с именем docker-compose.yml в каталоге вашего проекта со следующей информацией: version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" На основании содержания файла происходит запуск двух сервисов: Web и Redis, а в дальнейшем вы можете вносить в этот файл различные БД и иную важную информацию. C помощью команды Compose создайте ваше приложение, после чего из каталога проекта запустите приложение, запустив docker-compose. Вот так: $ docker-compose up Creating network "composetest_default" with the default driver Creating composetest_web_1 ... Creating composetest_redis_1 ... Creating composetest_web_1 Creating composetest_redis_1 ... done Attaching to composetest_web_1, composetest_redis_1 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) redis_1 | 1:C 17 Aug 22:11:10.480 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo redis_1 | 1:C 17 Aug 22:11:10.480 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1, just started redis_1 | 1:C 17 Aug 22:11:10.480 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf web_1 | * Restarting with stat redis_1 | 1:M 17 Aug 22:11:10.483 * Running mode=standalone, port=6379. redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. web_1 | * Debugger is active! redis_1 | 1:M 17 Aug 22:11:10.483 # Server initialized redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. web_1 | * Debugger PIN: 330-787-903 redis_1 | 1:M 17 Aug 22:11:10.483 * Ready to accept connections Compose извлекает образ Redis, создавая образ для вашего приложения и запускает выбранные службы. В этом случае код копируется в образ во время сборки. Как вам такое? Теперь попробуйте ввести http://localhost:5000/ в браузере, чтобы чекнуть запущенное приложение. Если вы используете Docker для Linux, Docker Desktop для Mac или Docker Desktop для Windows, то теперь веб-приложение должно "смотреть" на порт 5000 на хосте Docker. Введите в своем веб-браузере адрес http://localhost:5000, чтобы увидеть сообщение Hello World. Если не сработает, вы также можете попробовать зайти на http://127.0.0.1:5000. Если вы используете Docker Machine на Mac или Windows, используйте ip MACHINE_VM docker-machine для получения IP-адреса вашего хоста Docker. Затем откройте http://MACHINE_VM_IP:5000 в браузере. Вы должны увидеть сообщение в своем браузере: Hello World! I have been seen 1 times. Переключитесь на другое окно терминала и введите docker image ls, чтобы вывести список локальных образов/контейнеров. Вывод на этом этапе должен показывать redis и web. $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE composetest_web latest e2c21aa48cc1 4 minutes ago 93.8MB python 3.4-alpine 84e6077c7ab6 7 days ago 82.5MB redis alpine 9d8fa9aa0e5b 3 weeks ago 27.5MB Важно: Вы можете просматривать запущенные контейнеры с помощью Docker Inspect Tag или ID Запустите docker-compose из каталога вашего проекта во втором терминале, либо нажмите CTRL + C в исходном терминале, где приложение уже запущено и отредактируйте файл Compose. Отредактируйте docker-compose.yml в каталоге вашего проекта для внесения той или иной правки в веб-службе version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code environment: FLASK_ENV: development redis: image: "redis:alpine" Новый ключ редактирует каталог проекта на хосте внутри контейнера, что позволяет изменять код без необходимости перестраивать весь образ. Ключ среды устанавливает переменную FLASK_ENV, которая сообщает о запуске в режиме разработки и перезагрузке кода при изменении. Важно: этот режим должен использоваться только при разработке. В каталоге проекта введите docker-compose up, чтобы создать приложение с обновленным файлом Compose, и запустите его. $ docker-compose up Creating network "composetest_default" with the default driver Creating composetest_web_1 ... Creating composetest_redis_1 ... Creating composetest_web_1 Creating composetest_redis_1 ... done Attaching to composetest_web_1, composetest_redis_1 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) … Поскольку код приложения теперь добавляется в контейнер с помощью тома, вы можете вносить изменения в его код и мгновенно просматривать изменения без необходимости перестраивать образ. Измените сообщение в app.py и сохраните его: Hello from Docker!: return 'Hello from Docker! I have been seen {} times. '.format(count) Обновите результат в вашем браузере (нажмите F5 или Ctrl + F5) . Приветствие должно быть обновлено, а счетчик должен увеличиваться. Вы можете поэкспериментировать с другими командами. Если вы хотите запускать свои службы в фоновом режиме, вы можете сделать следующее: docker-compose up and use docker-compose ps to see what is currently running: $ docker-compose up -d Starting composetest_redis_1... Starting composetest_web_1... $ docker-compose ps Name Command State Ports ------------------------------------------------------------------- composetest_redis_1 /usr/local/bin/run Up composetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp Команда docker-compose run позволяет вам применять одноразовые команды к вашим сервисов. Например, чтобы увидеть, какие переменные среды доступны для веб-службы: $ docker-compose run web env Выполните команду docker-compose –help, чтобы увидеть весь список доступных команд. Если вы запустили Compose с помощью docker-compose up -d, то нужно будет остановить ваши службы после работы с ними, для этого поможет команда ниже:$ docker-compose stop Если хотите полностью уничтожить контейнер, используйте команду down.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59