标签: netezza

如何在netezza中找到组织表的列?

我在Netezza中创建了一个表,如下所示:

CREATE TABLE sample
( col1 int,
col2 int,
col3 int,
col4 int )
DISTRIBUTE ON HASH (col1,col2,col3)
ORGANIZE ON (col2);
Run Code Online (Sandbox Code Playgroud)

在创建表之后,我想查询数据库以查找表"在哪个列上组织".由于上表是在"col2"上组织的

netezza

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

使用nzsql将数据导出到CSV

我想从netezza将数据导出为CSV。数据由数百万行记录组成。数据应在反逗号内,并且应以^作为分隔符。例如:“ a” ^“ b” ^“ c”

shell netezza

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

如何克服Netezza缺乏独特的约束/参照完整性执行?

似乎缺乏对执行2个基本约束(唯一和外键)的支持,是失去许多工时调试和解决难题的原因.什么开始是一个简单,易于修复的问题(重复行/不一致的主要细节表)在我们的应用程序中甚至在我们的硬件中都没有被注意到,增长并引发复杂的边缘场景(例如,自我加入与重复可能导致通货膨胀和储存耗尽).

  • Netezza在我们的环境中有多种用途:生产,研究,qa和分期.当然,我们的ETL过程不能成熟,也无法验证所有这些场景中的所有约束.
  • 即使在生产中使用的最成熟的应用程序中,在ETL加载数据时也会验证数据,我们创建了一系列表,每个表都是其前任计算的结果.有时,数据完整性在此过程中被破坏,而不是在开始时(由于有缺陷的声明)

任何人都可以推荐一种方法/工具来避免这些麻烦吗?

database data-integrity netezza

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

Netezza:如何向表中添加列

ALTER TABLE table_name不支持ADD列.有没有其他方法可以向表中添加列?

netezza

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

Netezza - 插入多行很慢

如何在Netezza中同时插入多行?我有大约20k的记录要插入,但需要1小时(!)才能将它们全部放入使用单个插入

INSERT INTO MYTABLE VALUES (2, 2, 2, 'E') , (3, 4, 5, 'Z') --doesn't work
Run Code Online (Sandbox Code Playgroud)

这就是我现在正在使用的

INSERT INTO MYTABLE VALUES (2, 2, 2, 'E'); 
INSERT INTO MYTABLE VALUES (3, 4, 5, 'Z');
...
Run Code Online (Sandbox Code Playgroud)

sql netezza

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

在 NZSQL 中将 limit 与 union all 一起使用时出错

我试图在一周的时间内随机抽样随机条目。为了确保平日和周末条目的平衡,我草拟了 2 个单独的 sql 语句,如下所示:

select * FROM admin.acct_activity
where RANDOM() <=1
        --weekday
        and extract(day from page_hit_ts) Between 6 and 10
limit 500
UNION all

SELECT *
FROM admin.acct_activity
where RANDOM() <=1
        --weekend
        and extract(day from page_hit_ts) Between 11 and 12
limit 200
/* to-do
 1. limit results for each query
 2. order query results by date*/
Run Code Online (Sandbox Code Playgroud)

错误信息是:

"all" (at char 121) expecting a keyword (State:42000, Native Code: 1B)
Run Code Online (Sandbox Code Playgroud)

这是在 Netezza SQL (NZSQL)

第一个 select 语句中的 limit 语句似乎导致了错误。有小费吗?

sql netezza

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

找出删除和更新的行

是否有可能以某种方式找出从表中删除的行的主键?

同样,是否可以找出表中更新的行的主键?

让我们考虑一个简单的用例:

我有两个时间戳:

  • 开始
  • 结束

给我这两个时间戳之间更新/删除的所有行的主键.

表格中没有任何信息表明它们已经更新.

postgresql netezza

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

等待ExecuteNonQueryAsync()仍然阻止我的UI

我发现在调用异步方法时我的C#app UI挂起,我无法弄清楚原因.

private async void selectCSVFileButton_Click(object sender, EventArgs e)
{
    ... 
    var results = await ntz.getProductNames();
    ...
}
...
public async Task<List<string[]>> getProductNames()
{
    string fmt = "DRIVER={{NetezzaSQL}};SERVER={0};PORT={1};DATABASE={2};UID={3};PWD={4};";
    ntz = new OdbcConnection(string.Format(fmt, server, port, db, user, password));
    await ntz.OpenAsync();
    qry = "SELECT * FROM ak_db_1 WHERE prod_name_desc='Unknown'";
    OdbcCommand cmd = ntz.CreateCommand();
    cmd.CommandTimeout = 600;
    cmd.CommandText = qry;
    await cmd.ExecuteNonQueryAsync();
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序完全挂起(UI无响应),直到cmd.ExecuteNonQueryAsync完成.有任何想法吗?

c# sql asynchronous netezza

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

使用 Python 将 2Gb+ SELECT 导出为 CSV(内存不足)

我正在尝试从 Netezza 导出一个大文件(使用 Netezza ODBC + pyodbc),此解决方案会引发 memoryError,如果我在没有“list”的情况下循环,它会非常慢。你知道一个不会杀死我的服务器/python进程但可以运行得更快的中间解决方案吗?

cursorNZ.execute(sql)
archi = open("c:\test.csv", "w")
lista = list(cursorNZ.fetchall())
for fila  in lista:
    registro = ''
    for campo in fila:
        campo = str(campo)
        registro = registro+str(campo)+";"
    registro = registro[:-1]
    registro = registro.replace('None','NULL')
    registro = registro.replace("'NULL'","NULL")
    archi.write(registro+"\n")
Run Code Online (Sandbox Code Playgroud)

- - 编辑 - -

谢谢,我正在尝试:其中“sql”是查询,cursorNZ 是

connMy = pyodbc.connect(DRIVER=.....)
cursorNZ = connNZ.cursor()

chunk = 10 ** 5  # tweak this
chunks = pandas.read_sql(sql, cursorNZ, chunksize=chunk)
with open('C:/test.csv', 'a') as output:
    for n, df in enumerate(chunks):
        write_header …
Run Code Online (Sandbox Code Playgroud)

python csv netezza export-to-csv

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

得到??将 Netezza 与 Python 连接时作为 unicode 字符的输出

我正在尝试从 Netezza 数据库访问 python 代码中的 unicode(中文、日语等)字符。对于连接,我使用了 Netezza odbc 驱动程序和 sqlalechmy,以及 netezza 中的一个表,其中有一个 nvarchar 类型的列,其中包含中文字符。使用 python 代码访问该汉字时,输出为 ?? 而不是实际数据。

表有两列,一列是数据类型 id,另一列是数据类型 nvarchar:

id(int)  Data(nvarchar)
1        ??
2        ??
3        ??
Run Code Online (Sandbox Code Playgroud)

连接代码:

id(int)  Data(nvarchar)
1        ??
2        ??
3        ??
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pyodbc netezza python-unicode

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