为了账号安全,请及时绑定邮箱和手机立即绑定

如何将架构与有效负载相关联?

如何将架构与有效负载相关联?

PHP
凤凰求蛊 2021-05-13 14:09:56
对于上下文: 我正在为除雪机设置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类并强制将自己的模式作为变量,但是为什么还不这样呢?我之所以问是因为我假设开源程序员做对了,而我却没有正确地理解它。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

我想到了。


Tracker类包含trackUnstructuredEvent:


/**

 * Tracks an unstructured event with the aforementioned metrics

 *

 * @param array $event_json - The properties of the event. Has two fields:

 *                           - A "data" field containing the event properties and

 *                           - A "schema" field identifying the schema against which the data is validated

 * @param array|null $context - Event Context

 * @param int|null $tstamp - Event Timestamp

 */

public function trackUnstructEvent($event_json, $context = NULL, $tstamp = NULL) {

    $envelope = array("schema" => self::UNSTRUCT_EVENT_SCHEMA, "data" => $event_json);

    $ep = new Payload($tstamp);

    $ep->add("e", "ue");

    $ep->addJson($envelope, $this->encode_base64, "ue_px", "ue_pr");

    $this->track($ep, $context);

}

接受模式作为输入。Snowplow希望您使用Tracker的默认功能,并提供以上内容作为我的问题的解决方案。


但是它仍然有一个环绕数据的模式(包含输入模式)。


查看完整回答
反对 回复 2021-05-28
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信