Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP und Google Cloud Dataflow für die Verarbeitung und Verwaltung von Streaming-Daten
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 grpcE
PROTOBUF-Erweiterung
$ pecl install protobufEE
DAFLOW PHP-Erweiterung
$ pecl install google-cloud-dataflow-alpha5. Führen Sie die Dataflow-Verarbeitungspipeline aus Verwenden Sie den folgenden Befehl, um die Dataflow-Verarbeitungspipeline auszuführen:
<?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";6. Überwachung und Verwaltung von Datenverarbeitungspipelines Google Cloud Console bietet eine Dataflow-Seite, die zum Anzeigen und Verwalten von Datenverarbeitungspipelines verwendet werden kann. 7. ZusammenfassungIn diesem Artikel erfahren Sie, wie Sie PHP und Google Cloud Dataflow für die Stream-Datenverarbeitung und -Verwaltung verwenden, von der Erstellung eines Google Cloud-Projekts über die Einrichtung der Umgebung, die Installation der erforderlichen PHP-Erweiterungen bis hin zum Schreiben von Datenstream-Verarbeitungscode und deren Ausführung Die Dataflow-Verarbeitungspipeline sowie die Überwachung und Verwaltung von Datenverarbeitungspipelines stellen den Prozess und die Schritte von Dataflow ausführlich vor und hoffen, für alle hilfreich zu sein.
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!