小编Nat*_*ths的帖子

Amazon athena 无法读取 S3 Access 日志文件并且 Athena select 查询为每列返回空结果集

我在 Athena 中成功创建了数据库表。请参阅下面的查询。

   CREATE EXTERNAL TABLE IF NOT EXISTS s3_access_logs_db.wafbucket_logs(
      BucketOwner STRING,
      Bucket STRING,
      RequestDateTime STRING,
      RemoteIP STRING,
      Requester STRING,
      RequestID STRING,
      Operation STRING,
      Key STRING,
      RequestURI_operation STRING,
      RequestURI_key STRING,
      RequestURI_httpProtoversion STRING,
      HTTPstatus STRING,
      ErrorCode STRING,
      BytesSent BIGINT,
      ObjectSize BIGINT,
      TotalTime STRING,
      TurnAroundTime STRING,
      Referrer STRING,
      UserAgent STRING,
      VersionId STRING,
      HostId STRING,
      SigV STRING,
      CipherSuite STRING,
      AuthType STRING,
      EndPoint STRING,
      TLSVersion STRING
  ) 
  ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
  WITH SERDEPROPERTIES (
               'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) 
               \\[(.*?)\\] …
Run Code Online (Sandbox Code Playgroud)

amazon-athena

3
推荐指数
1
解决办法
1397
查看次数

有没有办法替换 Rank() OVER SQL 中的 TOP 100 PERCENT?

所以这个 SQL 对相册中的页面进行排序,在添加新上传的页面后调用它,它更新序列顺序:

UPDATE Gallery.AlbumAsset
SET
    Sequence = X.Rank
FROM Gallery.AlbumAsset albass
INNER JOIN 
(
    SELECT TOP 100 PERCENT
        Rank() OVER (Order By Sequence, AssetId) As Rank, AssetId
    FROM Gallery.AlbumAsset
    WHERE AlbumId = @AlbumId and Sequence > 0
    ORDER BY Rank

) X ON albass.AssetId = X.AssetId AND albass.Sequence != X.Rank
WHERE albass.AlbumId = @AlbumId
Run Code Online (Sandbox Code Playgroud)

我认为 TOP 100 PERCENT 令人困惑,并且对于可读性来说不是最佳的,所以我尝试进行更改:

UPDATE Gallery.AlbumAsset
SET
    Sequence = X.Rank
FROM Gallery.AlbumAsset albass
INNER JOIN 
(
    SELECT
        Rank() OVER (Order By Sequence, AssetId) As …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

1
推荐指数
1
解决办法
739
查看次数

对这些实体之间的关系进行建模的最有效方法是什么?

我有一个包含实体的数据库,如下所示:

1. User entity
2. Event entity (musical concert etc.)
3. Ticket entity
3. Notification entity
Run Code Online (Sandbox Code Playgroud)
  • 通知实体与工单和事件都有直接关系(1:N [工单/事件:通知])。
  • 通知将存储在数据库中,用户可以通过通知选项卡访问它们。
  • 用户可以收到与其门票相关的通知(例如“我们刚刚将您的门票发送给您!”)或有关某些活动的通知(例如“活动 xy 即将推出!预订您的位置!”)。

我一直在思考三种可能的解决方案:

a) 通知实体具有以下结构:

id serial PRIMARY KEY, 
.
.
ticketId integer REFERENCES tickets(id),
eventId integer REFERENCES events(id))
userId integer REFERENCES users(id) // this is present in all three solutions;
Run Code Online (Sandbox Code Playgroud)

这样,Notification 实体就拥有两个外键,但一次只填充其中一个(eventId 或 TicketId),另一个永远为空。

b) 通知实体仅具有与通知本身相关的列,它不包含任何外键(userId 除外)。
关系被提取到另外两个具有此结构的关系映射表中(对于通知-工单关系,同样适用于通知-事件,除了外键引用事件):

id serial PRIMARY KEY,
notificationId integer REFERENCES notifications(id),
ticketId integer REFERENCES tickets(id));
Run Code Online (Sandbox Code Playgroud)

这样,我们创建了类似接口的东西,并且不让通知实体知道任何有关关系的信息(它只有与通知本身和 userId 相关的属性),并且我们还有两个映射关系的附加表。

c) 将Notification实体分成两个不同的实体
(TicketNotification、EventNotification),每个实体具有相同的属性,但外键列不同。

- TicketNotification - …
Run Code Online (Sandbox Code Playgroud)

sql database database-design entity relational-database

1
推荐指数
1
解决办法
1600
查看次数

Snowflake是否支持索引?

在Snowflake文档中,我找不到使用索引的引用。

Snowflake是否支持索引,如果不支持,在使用Snowflake时性能调整的替代方法是什么?

snowflake-cloud-data-platform

0
推荐指数
5
解决办法
164
查看次数