您可以在Amazon Athena中创建视图吗?概述了如何使用用户界面创建视图。
我想以编程方式创建一个AWS Athena View,理想情况下使用Terraform(称为CloudFormation)创建。
我遵循此处概述的步骤:https : //ujjwalbhardwaj.me/post/create-virtual-views-with-aws-glue-and-query-them-using-athena,但是我遇到了一个问题视图很快就会过时。
...._view' is stale; it must be re-created.
terraform代码如下所示:
resource "aws_glue_catalog_table" "adobe_session_view" {
database_name = "${var.database_name}"
name = "session_view"
table_type = "VIRTUAL_VIEW"
view_original_text = "/* Presto View: ${base64encode(data.template_file.query_file.rendered)} */"
view_expanded_text = "/* Presto View */"
parameters = {
presto_view = "true"
comment = "Presto View"
}
storage_descriptor {
ser_de_info {
name = "ParquetHiveSerDe"
serialization_library = "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
}
columns { name = "first_column" type = "string" }
columns { name = …Run Code Online (Sandbox Code Playgroud) aws-cloudformation aws-cli terraform amazon-athena terraform-provider-aws
正如标题所示,我正在努力实现.目前我可以显示使用的内容<div>:
document.write("<table><tr>");
...
document.write("<td onclick=\"window.location.href='#popup'\" ... >" + name + "\"</td>);
Run Code Online (Sandbox Code Playgroud)
随着<div>定义为:(这里我试图用data-name)
<div id="popup" data-name="name" class="dialog">
<a href="#close"><img src="..." alt="..." width="166" height="104" align="left" /></a>
<p>
Hello (dynamic name here)!
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过调用:
document.write("<td onclick=\"popup(" + name + ")\" class=\"programme\">" + name + "</td>");
function popup(movieName)
{
var pop = document.getElementById("popup");
pop.setAttribute("data-movie", movieName);
document.location.href = "#popup";
};
Run Code Online (Sandbox Code Playgroud)
但我不再这样看弹出窗口了.
我最终想要"弹出"成为一个模态对话窗口,它将显示在表格的顶部.目前正如它在表格上方所定义的那样,它只是在显示时将表格向下推.
编辑:感谢您的幻想帮助.@carlosHT和@TimeDead都是.两种解决方案都有效,并且都教会了我很多.我已经选择了carlosHT的解决方案,因为它是一个较小的实现.我必须添加的唯一补充是:
.ui-dialog
{
clear: both;
}
Run Code Online (Sandbox Code Playgroud)
这会阻止对话框窗口具有非常高的标题栏.
我有一个图像数据库.带有两bytea列的图像表.我想查询表并查看这些列,以便能够查看这些条目是否存储图像.因为它们是可以为空的列.
目前,当我使用psql命令行查询数据库时,我的整个命令行屏幕变为空白,试图显示bytea.
我已经用Google搜索了一段时间,无法找到合适的方式来展示桌子.理想情况下,会显示第一个"x"字符.
我可以通过上传一个微小的图片来确认bytea是否足够小.
这就是我在做的时候所看到的: SELECT * FROM Image;

我想在我的知识中找出一些空白.从这开始.
示例(c#):
List<Person> names = new List<Person>();
Person friend = null;
for(int i = 0; i < 5; i++)
{
friend = new Person();
Person guy = new Person();
guy.name = "Bob" + i;
friend.name = "Bill" + i;
names.Add(guy);
names.Add(friend);
}
Run Code Online (Sandbox Code Playgroud)
这里我在同一个循环中使用了两个Person对象,只是为了节省空间.
我的理解是,每次我实例化朋友时,我都会在内存中重用相同的位置,覆盖现有的Person对象(如果存在).
而每个新的"guy"对象都被分配了一个新的内存位置.
如果这是正确的,请纠正我,如果这是错误的,这意味着使用"朋友"而不是"家伙"更有效.
会不会出现"家伙"更好的情况?它可能取决于构造函数的实现吗?