对于上下文: 我正在为除雪机设置PubSub发射器。(对于其他读者,PubSub是Google Cloud Platforms上的一个简单队列,它接收作为数组输入的消息)。
['data' => 'Name', 'attributes' => 'key pair values of whatever data you are sending']
上面的内容无关紧要,只是我必须创建一个自定义的Emitter类才能实现此目标,因为Google Cloud PubSub的连接器与Snowplow提供的陈旧的http请求/套接字/其他连接器不同。
实际问题:
我想为我发送的每个事件设置一个特定的架构。您如何将架构与每个有效负载相关联?
PHP Tracker SyncEmitter(提供的最标准的除雪机Emitter)不允许对该模式进行任何自定义设置(如下所示)
private function getPostRequest($buffer) {
$data = array("schema" => self::POST_REQ_SCEHMA, "data" => $buffer);
return $data;
}
它被硬编码到每个跟踪的事件中。
因此,我进行了调查。并在扫雪机追踪器上阅读更多内容。我仍然感到困惑,我知道我可以扩展Payload类并强制将自己的模式作为变量,但是为什么还不这样呢?我之所以问是因为我假设开源程序员做对了,而我却没有正确地理解它。
ABOUTYOU