Pau*_*ulo 6 amazon-redshift google-data-studio
当我使用PostgreSQL Connector上的日期维度在 Google Data Studio 中聚合值时,我看到了错误的行为。症状是执行返回与以下相同的值:COUNT(DISTINCT)COUNT()
我的理论是,它与计数已经发生后发生的数据聚合有关。如果我尝试对导出的CSV 中的相同数据进行完全相同的聚合,而不是直接从PostgreSQL Connector Data Source中进行聚合,则问题不会重现:
我的PostgreSQL 连接器正在使用以下自定义查询连接到Amazon Redshift ( jdbc:postgresql://*******.eu-west-1.redshift.amazonaws.com):
SELECT
userid,
submissionid,
date
FROM mytable
Run Code Online (Sandbox Code Playgroud)
如果我停止使用日期维度的默认date字段并直接在 SQL 查询 ( ) 中聚合我自己的日期,聚合将按预期工作:date_byweekCOUNT(DISTINCT)
SELECT
userid,
submissionid,
to_char(date,'YYYY-IW') as date_byweek
FROM mytable
Run Code Online (Sandbox Code Playgroud)
虽然这个变通方法解决了我眼前的问题,但它很糟糕,因为我错过了 Data Studio 提供的所有日期功能(层次结构钻取、日期范围过滤等)。更不用说降低我对产品中其他可能存在“问题”的信心
如果您想重新创建问题,使用以下数据作为PostgreSQL 数据源就足够了:
> SELECT * FROM mytable
userid submissionid
-------- -------------
1 1
2 2
1 3
1 4
3 5
> COUNT(DISTINCT userid) -- ERROR: Returns 5 when data source is PostgreSQL
> COUNT(DISTINCT userid) -- EXPECTED: Returns 3 when data source is CSV (exported from same PostgreSQL query above)
Run Code Online (Sandbox Code Playgroud)
小智 1
我对 MySQL 连接器也有同样的问题。但当我将数据库中的日期字段格式从 DATETIME (YYYY-MM-DD HH:MM:SS) 更改为 INT (Unixtimestamp) 时,我的问题得到了解决。将此表连接到 Googe Datastudio 后,我将此字段的类型设置为日期(YYYYMMDD)并且所有工作都按预期进行。希望这可以帮助你:)
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |