小编Ben*_*min的帖子

AWS Kinesis Firehose - 按纪元以外的时间戳进行动态分区

FirehoseEventbridge事件中读到的内容类似于:

{
  "detail": {
    "key1": "some value",
    "key2": "some value",
    "Timestamp": "2022-01-21T19:01:05Z"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想在将事件保存到s3. 我尝试像这样提取年份:

.detail.Timestamp| strftime("%Y")
Run Code Online (Sandbox Code Playgroud)

Timestamp我知道如果以格式给出字段,这会起作用epoch,但现在我收到错误(通过保存到文件中firehose):

{
  . . .
  "errorCode": "DynamicPartitioning.MetadataExtractionFailed",
  "errorMessage": "strftime/1 requires parsed datetime inputs",
  . . .
}
Run Code Online (Sandbox Code Playgroud)

从我的事件包含的时间戳中提取年份(和其他时间部分)的正确语法是什么?

amazon-web-services amazon-kinesis amazon-kinesis-firehose aws-event-bridge

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

C++中静态变量的存储位置是什么时候确定的?

我有以下简单的程序:

int main()
{
    int x = 5;
    static int y = x;
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

用 gcc 编译它,它会产生该行的错误,static int y = x;因为“初始化元素不是常量”。我认为这是由于它y是一个静态变量,在编译时需要知道其存储位置(数据/bss)和初始值。

但是,当使用 g++ 编译时,我没有收到任何错误并且程序运行良好(y打印出 5 个)。

我的问题是:

  1. 我的假设正确吗?
  2. 如果是这样,为什么可以在 C++ 中对静态变量进行这样的初始化?

c c++ build static-variables

4
推荐指数
2
解决办法
105
查看次数

C 中的静态变量如何在内存中持久化?

我们都知道静态变量如何工作的常见示例 - 在具有某个值(假设为 5)的函数内声明了一个静态变量,该函数将其加 1,并且在对该函数的下一次调用中,该变量将被修改值(在我的示例中为 6)。

这在幕后是如何发生的?是什么让函数在第一次调用后忽略变量声明?鉴于函数的堆栈帧在调用完成后被“销毁”,该值如何保留在内存中?

c static

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