Mit dem Aufkommen der Informationsexplosion sind die Nutzung und Verarbeitung von Daten immer wichtiger geworden. Die Streaming-Datenverarbeitung ist zu einer der wichtigsten Methoden zur Verarbeitung großer Datenmengen geworden. Als PHP-Entwickler müssen Sie Erfahrung und Anforderungen in der Verarbeitung von Echtzeitdaten haben. In diesem Artikel wird erläutert, wie Sie PHP und Google Cloud Dataflow für die Verarbeitung und Verwaltung von Streaming-Daten verwenden.
1. Einführung in Google Cloud Dataflow
Google Cloud Dataflow ist ein Cloud-Dienst, der umfangreiche Datenverarbeitungsaufgaben effektiv bewältigen kann und gleichzeitig die Kombination von Stapelverarbeitung und Stream-Verarbeitung ermöglicht .
Google Cloud Dataflow weist die folgenden Eigenschaften auf:
2. Erstellen Sie ein Google Cloud Dataflow-Projekt und richten Sie die Umgebung ein
Zuerst müssen Sie ein Google Cloud-Projekt erstellen .
Sie müssen Google Cloud SDK installieren, um Google Cloud Dataflow verwenden zu können. Laden Sie das Installationspaket herunter und befolgen Sie die Anweisungen, um die Installation abzuschließen.
Verwenden Sie den folgenden Befehl, um die Umgebungsvariablen auf das aktuelle Google Cloud-Projekt festzulegen:
$ gcloud config set project [PROJECT_ID]
3. Installieren Sie die erforderlichen PHP-Erweiterungen
Um den Dataflow-Dienst in PHP nutzen zu können, müssen Sie dies tun Installieren Sie die folgenden Erweiterungen:
$ pecl install grpc
PROTOBUF-Erweiterung
$ pecl install protobuf
DAFLOW PHP-Erweiterung
$ pecl install google-cloud-dataflow-alpha
<?php require __DIR__ . '/vendor/autoload.php'; use GoogleCloudBigQueryBigQueryClient; use GoogleCloudDataflowDataflowClient; use GoogleCloudDataflowPubSubPubSubOptions; use GoogleCloudPubSubPubSubClient; use GoogleCloudDataflowOptions; $configs = include __DIR__ . '/config.php'; $inputTopic = $configs['input_topic']; $outputTable = $configs['output_table']; $project = $configs['project_id']; $bucket = $configs['bucket']; $stagingLocation = $configs['staging_location']; $tempLocation = $configs['temp_location']; $jobName = 'test-job'; $options = [ 'project' => $project, 'stagingLocation' => $stagingLocation, 'tempLocation' => $tempLocation, 'jobName' => $jobName, ]; $pubsub = new PubSubClient([ 'projectId' => $project ]); $pubsub_topic = $pubsub->topic($inputTopic); $bigquery = new BigQueryClient([ 'projectId' => $project ]); $dataset = $bigquery->dataset('test_dataset'); $table = $dataset->table($outputTable); $table->create([ 'schema' => [ [ 'name' => 'id', 'type' => 'STRING', ], [ 'name' => 'timestamp', 'type' => 'TIMESTAMP', ], [ 'name' => 'message', 'type' => 'STRING', ], ], ]); $dataflow = new DataflowClient(); $pubsubOptions = PubSubOptions::fromArray([ 'topic' => sprintf('projects/%s/topics/%s', $project, $inputTopic), ]); $options = [ Options::PROJECT => $project, Options::STAGING_LOCATION => $stagingLocation, Options::TEMP_LOCATION => $tempLocation, Options::JOB_NAME => $jobName, ]; $job = $dataflow->createJob([ 'projectId' => $project, 'name' => $jobName, 'environment' => [ 'tempLocation' => sprintf('gs://%s/temp', $bucket), ], 'steps' => [ [ 'name' => 'Read messages from Pub/Sub', 'pubsubio' => (new GoogleCloudDataflowIoPubsubPubsubMessage()) ->expand($pubsubOptions) ->withAttributes(false) ->withIdAttribute('unique_id') ->withTimestampAttribute('publish_time') ], [ 'name' => 'Write messages to BigQuery', 'bigquery' => (new GoogleCloudDataflowIoBigQueryBigQueryWrite()) ->withJsonSchema(file_get_contents(__DIR__ . '/schema.json')) ->withTable($table->tableId()) ], ] ]); $operation = $job->run(); # Poll the operation until it is complete $operation->pollUntilComplete(); if (!$operation->isComplete()) { exit(1); } if ($operation->getError()) { print_r($operation->getError()); exit(1); } echo "Job has been launched";
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP und Google Cloud Dataflow für die Verarbeitung und Verwaltung von Streaming-Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!