Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP und Google Cloud Dataflow für die Verarbeitung und Verwaltung von Streaming-Daten

So verwenden Sie PHP und Google Cloud Dataflow für die Verarbeitung und Verwaltung von Streaming-Daten

王林
王林Original
2023-06-25 08:07:391027Durchsuche

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:

  1. Es wird automatisch erweitert, wenn der Speicher eines einzelnen Knotens nicht ausreicht.
  2. Es kann die zugrunde liegende Abstraktion vor Benutzern verbergen, sodass Benutzer einfacher Code schreiben können.
  3. Das ist nicht erforderlich Erstellen oder verwalten Sie einen Cluster Datenverarbeitung
  4. unterstützt mehrere Sprachen

2. Erstellen Sie ein Google Cloud Dataflow-Projekt und richten Sie die Umgebung ein

  1. Erstellen Sie ein Google Cloud-Projekt

Zuerst müssen Sie ein Google Cloud-Projekt erstellen .

  1. Installieren Sie Google Cloud SDK

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.

  1. Umgebungsvariablen festlegen

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:

  1. GRPC-Erweiterung 下 Verwenden Sie den folgenden Befehl, um die GRPC-Erweiterung zu installieren:
  2. R
    $ pecl install grpc
    E

PROTOBUF-Erweiterung

  1. Verwenden Sie die folgenden Befehle, um die Protobuf-Erweiterung zu installieren:
  2. $ pecl install protobuf
    EE

DAFLOW PHP-Erweiterung

  1. die Folgender Befehl zum Installieren der DataFlow-PHP-Erweiterung:
  2. Rreee
Viertens: Schreiben Sie den Datenflussverarbeitungscode

Das Folgende ist ein Beispiel, mit dem Nachrichten vom Pub/Sub-Thema empfangen und an die Dataflow-Verarbeitungspipeline übergeben werden können. Die Ergebnisse werden in die BigQuery-Tabelle geschrieben:

$ pecl install google-cloud-dataflow-alpha

5. 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. Zusammenfassung

In 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn