Python действительно везде на данный момент.
Хотя многие привратники утверждают, является ли человек действительно разработчиком программного обеспечения, если он не кодирует на языке более сложным, чем Python, он все еще везде.
Это используется для автоматизировать , Управление веб -сайтами анализируют данные и сразитесь с большими данными.
По мере того, как данные растет, способ управления мы становимся все более и более тонким.
Мы больше не ограничиваемся использованием только реляционных баз данных.
Это также означает, что в настоящее время существует больше инструментов для взаимодействия с этими новыми системами, такими как Kafka, Hadoop (более конкретно Hbase), Spark, BigQuery и Redshift (и многие другие).
Каждая из этих систем использует преимущества, таких как распределение, столбчатая архитектура и потоковые данные, чтобы быстрее предоставить информацию конечному пользователю.
Потребность в более быстрой, более актуальной информации будет стимулировать необходимость для инженеров и инженеров-программистов для использования этих инструментов.
Вот почему мы хотели бы быстро вступить в некоторые библиотеки Python, которые могут вам помочь.
Google BigQuery – это очень популярный склад Enterprise, созданный с комбинацией облачной платформы Google и BigTable.
Этот облачный сервис отлично подходит для всех размеров данных и выполняет сложные запросы за несколько секунд.
BigQuery – это Restful Web Service, которая позволяет разработчикам выполнять интерактивный анализ огромных наборов данных в сочетании с платформой Google Cloud. Давайте посмотрим на пример, который я собрал в Еще одна часть, расположенная здесь Анкет
from google.cloud import bigquery from google.oauth2 import service_account # TODO(developer): Set key_path to the path to the service account key # file. # key_path = "path/to/service_account.json" credentials = service_account.Credentials.from_service_account_file( filename="project_g.json" ) client = bigquery.Client( credentials=credentials, project=credentials.project_id, ) medicare = client.dataset('cms_medicare', project='bigquery-public-data') medicare = client.dataset('cms_medicare', project='bigquery-public-data') print([x.table_id for x in client.list_tables(medicare)])
Этот пример показывает вам, как вы можете подключиться к BigQuery, а затем начать получать информацию о таблицах и наборах данных, с которыми вы будете взаимодействовать.
В этом случае набор данных Medicare-это набор данных с открытым исходным кодом, к которому любой может получить доступ.
Еще один момент о BigQuery – это работает на BigTable. Важно понимать, что этот склад не является транзакционной базой данных. Поэтому его нельзя рассматривать как базу данных онлайн -обработки транзакций (OLTP). Он разработан специально для больших данных. Следовательно, это работа соответствует обработке наборов данных размером с петабайт.
Далее у нас есть популярный Redshift Amazon и S3. Amazon S3 – это в основном услуга хранения, которая используется для хранения и получения огромных объемов данных из любого места в Интернете. С помощью этой услуги вы платите только за хранилище, которое вы на самом деле используете. Redshift, с другой стороны, представляет собой полностью управляемое хранилище данных, которое эффективно обрабатывает данные с петтабалитом. Эта услуга предлагает более быстрые запросы с использованием инструментов SQL и BI.
Вместе Amazon Redshift и S3 работают для данных в качестве мощной комбинации: огромные объемы данных могут быть перекачены в склад Redshift с помощью S3. Этот мощный инструмент, кодированный в Python, становится очень удобным для разработчиков. Давайте посмотрим на простой “Привет, мир!” Пример для справки.
Источник для кода ниже
__author__ = 'fbaldo' import psycopg2 import pprint configuration = { 'dbname': 'database_name', 'user':'user_name', 'pwd':'user_password', 'host':'redshift_endpoint', 'port':'redshift_password' } def create_conn(*args,**kwargs): config = kwargs['config'] try: conn=psycopg2.connect(dbname=config['dbname'], host=config['host'], port=config['port'], user=config['user'], password=config['pwd']) except Exception as err: print err.code, err return conn def select(*args,**kwargs): # need a connection with dbname=_db cur = kwargs['cur'] try: # retrieving all tables in my search_path cur.execute("""select tablename from pg_table_def""") except Exception as err: print err.code,err rows = cur.fetchall() for row in rows: print row print 'start' conn = create_conn(config=configuration) cursor = conn.cursor() print 'start select' select(cur=cursor) print 'finish' cursor.close() for n in conn.notices(): pprint(n) conn.close()
Этот скрипт является базовым соединением. Выберите, используя psycopg2
Анкет
В этом случае я позаимствовал Jaychoo код.
Но это, опять же, обеспечивает быстрое руководство по подключению, а затем вытащите данные из Redshift.
Хорошо, давайте покинем мир систем хранения данных, и давайте рассмотрим инструменты, которые помогут вам быстро обрабатывать данные.
Apache Spark-это очень популярная рамка с открытым исходным кодом, которая выполняет крупномасштабную обработку распределенных данных. Это также может быть использовано для машинного обучения.
Эта структура кластера-выписки фокусируется в основном на оптимизации аналитики. Он работает с наборами данных с устойчивым распределением (RDD) и позволяет пользователям обрабатывать управляемые ресурсы Spark Clusters.
Он часто используется в сочетании с другими продуктами Apache (например, HBASE). Spark быстро обработает данные, а затем хранит их в таблицах, установленных в других системах хранения данных.
Чтобы начать, давайте посмотрим на основной пример запуска искры.
from pyspark.sql import Row from pyspark.sql import SQLContext sqlContext = SQLContext(sc) data=[('Big Burger Chain',92),('Small Burger Chain',99),('Taco Bar',100),('Thai Place',70)] rdd = sc.parallelize(data) #convert the data into restaurant_map=rdd.map(lambda x: Row(restaurant=x[0], rating=int(x[1]))) df_restaurant = sqlContext.createDataFrame(restaurant_map).collect()
Иногда установка Pyspark может быть проблемой, так как это требует зависимости. Вы видите, что он работает на вершине JVM и, следовательно, требует функционирования базовой инфраструктуры Java. Тем не менее, в эту эпоху, когда докер распространен, экспериментирование с Pyspark становится гораздо более удобной.
Alibaba используйте Pyspark для персонализации веб-страниц и предложения целевой рекламы-как многие другие крупные организации, управляемые данными
Kafka-это распределенная система обмена сообщениями об публикации, которая позволяет пользователям сохранять каналы сообщений как на реплицированных, так и в разделенных темах.
Эти темы – это в основном журналы, которые получают данные от клиента и хранят их в разделах. Kafka Python предназначен для работы в качестве официального клиента Java, интегрированного с интерфейсом Python. Лучше всего использовать с новыми брокерами и обратно совместим со всеми своими более старыми версиями.
Kafkaconsumer
from kafka import KafkaConsumer from pymongo import MongoClient from json import loads consumer = KafkaConsumer( 'sebtest', bootstrap_servers=['localhost:9092'], auto_offset_reset='earliest', enable_auto_commit=True, group_id='my-group', value_deserializer=lambda x: loads(x.decode('utf-8'))) client = MongoClient('localhost:27017') collection = client.sebtest.sebtest for message in consumer: message = message.value collection.insert_one(message) print('{} added to {}'.format(message, collection))
Kafkaproducer
from time import sleep from json import dumps from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers=['localhost:9092'], value_serializer=lambda x: dumps(x).encode('utf-8')) for e in range(10): data = {'number' : 'Hello this is message '+str(e)} producer.send('sebtest', value=data) sleep(1)
Как вы можете видеть в приведенных выше примерах, кодирование с Kafka Python требует как потребителя, так и обращенного производителя.
В Kafka Python у нас есть эти две стороны, работающие бок о бок. Kafkaconsumer
в основном потребитель сообщений на высоком уровне, который намерен работать в качестве официального клиента Java.
Это требует брокеров для поддержки групповых API. Kafkaproducer
является асинхронным производителем сообщений, который также намерен работать очень аналогично клиентам Java. Производитель может использоваться по темам без проблем, в то время как потребитель требуется многопроцесс.
Давайте убраем это с дороги. Нет, Hadoop сам по себе не является системой хранения данных. На самом деле есть несколько компонентов, включая MapReduce и распределенную файловую систему Hadoop (HDFS).
Таким образом, Pydoop находится в этом списке, но вам нужно будет соединить Hadoop с другими слоями (например, Hive), чтобы более легко сразиться с данными.
Pydoop-это интерфейс Hadoop-Python, который позволяет вам взаимодействовать с API HDFS и записывать задания MapReduce, используя код Pure Python.
Эта библиотека позволяет разработчику получить доступ к важным функциям MapReduce, таким как RecordReader
и Разместитель
, без необходимости знать Java. Для этого последнего примера я думаю, что люди в Edureka делают это лучше, чем я мог. Итак, вот отличное быстрое вступление.
Найдите здесь вступление
Сам Pydoop может быть слишком низким уровнем для большинства инженеров данных. Скорее всего, большинство из вас будут писать ETL в воздушном потоке, которые работают над этими системами. Но все еще здорово, по крайней мере, получить общее понимание того, с чем вы работаете.
Управление большими данными станет более жестким в ближайшие годы.
Из-за растущих сетевых способностей-IoT, улучшенных вычислительных средств и т. Д.-наводнение данных, которые поступают к нам, просто продолжит расти.
Таким образом, понимание некоторых систем и библиотек данных и библиотек, которые вы можете использовать для взаимодействия с этими системами, будет необходимо, если мы будем идти в ногу.
Спасибо за чтение.
Если вы хотите прочитать больше: Поток воздуха Airbnb против Spotify Luigi
Автоматизация загрузки файлов в SQL Server с Python и SQL
5 навыков каждый инженер -программист нуждается на основе описания работы
10 лучших курсов больших данных, Hadoop, Kafka и Spark
Варианты использования данных, которые улучшают финансовую отрасль
Консалтинга Data Science: как получить клиентов
Оригинал: “https://dev.to/seattledataguy/how-to-manage-big-data-with-5-python-libraries-4c6e”