从特定数据集市导出表数据?

Posted

技术标签:

【中文标题】从特定数据集市导出表数据?【英文标题】:Export table data from a particular data mart? 【发布时间】:2015-07-15 13:14:21 【问题描述】:

要使用 Sybase 从数据仓库中的所有数据集市中获取所有表的列表,我们使用

select * from sysobjects where type = 'U'

但是,我想从特定数据集市(“DM”)抓取并导出所有表。我对 Sybase 比较陌生,所以我的直觉告诉我要按照以下思路做一些事情:

select * from DM.sysobjects where type = 'U'

这显然行不通,否则我不会在这里:)。有人能指出我正确的方向吗?

【问题讨论】:

Sybase 是一家公司,而不是数据库。您能指定您使用的产品/版本吗? (ASE、IQ、SQL Anywhere 等)答案会因您使用的内容而异。 【参考方案1】:

根据您提到的表,您似乎正在使用 Sybase ASE。

Sybase ASE 不支持通过数据库转储以外的任何方法一次自动导出所有表。要获取数据库中的所有表,您需要创建一个脚本,该脚本将遍历数据库中的所有表(您称之为数据集市)。

有很多不同的方法可以解决这个问题,根据你是在 *nix 还是 windows 平台上,它可能会有所不同,但这至少会给你一个想法。

set nocount on
select "bcp "+ name + " out " + name + ".bcp -Uusername -Sservername -Ppassword -c
from sysobjects where type = 'U'
go

这将为您提供一个易于在服务器上运行的脚本文件。 -c 表示它是 字符模式 或纯文本文件。还有其他用于更改分隔符的选项等等,但这应该可以帮助您入门。

This answer 有更多关于使用bcp的细节

【讨论】:

以上是关于从特定数据集市导出表数据?的主要内容,如果未能解决你的问题,请参考以下文章

创建特定表的转储[重复]

数据仓库中事实表的复合索引 - 数据集市

如何从 impala 数据集市显示列名

数据集市建模事实表:列或行中的指标,其中一列称为指标

如何创建可以提高图表性能的聚合表(数据集市)?

MySQL 将多个表中的特定字段导出到一个 csv 文件中?创建表输出