【问题标题】:Generating TPC-DS database for sql server为 sql server 生成 TPC-DS 数据库
【发布时间】:2013-03-06 02:36:52
【问题描述】:

如何为 SQL Server 填充事务处理性能委员会的 TPC-DS 数据库?我已经下载了TPC-DS tool,但是关于如何使用它的教程很少。

【问题讨论】:

    标签: sql sql-server tpc


    【解决方案1】:

    如果您使用的是 Windows,则必须有 Visual Studio 2005 或更高版本。将dsgen解压到tools文件夹里面有dsgen2.sln文件,用visual studio打开并构建项目,会为你生成表格,我试过了,我手动将表格加载到sql server中

    【讨论】:

    • 感谢您的回答海瑟姆。我已经在 SQL Server 中生成了数据并创建了表。但是我在将数据加载到数据库时遇到了一些麻烦。您是否使用“BULK insert”语句加载数据?
    • 我使用了SQL Server导入和导出向导,在我将生成的文件的扩展名从.dat修改为.txt后,在SQL Server向导中我从数据源列表中选择:平面文件源,你必须为每个文件都这样做。但是,我被困在下一步,如何执行测试
    • 我尝试了您的方法,但出现错误:Destination - call_center.Inputs[Destination Input] 的输入列数不能为零。这个错误发生在你身上吗?顺便说一句,在导入时,我应该取消选中“第一个数据行中的列名”并将其他所有内容保持默认,对吗?感谢您的帮助。
    • 我不明白这个错误。但是,是的,您必须取消选中第一个数据行中的列名,某些列需要使其字段超过 50 位(这是默认值),您将在最后收到有关此列名称的错误消息,所以你得回去手动修改这个
    • 嗨,Haytham,感谢您的帮助,我向前迈进了一步。但是现在我在从模板生成可执行查询时遇到了麻烦。您是否通过 dsqgen 生成了 TPC-DS 查询?
    【解决方案2】:

    我刚刚成功生成了这些查询。 有些提示可能不是最好的但很有用。

    1. cp ${...}/query_templates/* ${...}/tools/
    2. define _END = ""; 添加到每个query.tpl
    3. ${...}/tools/dsqgen -INPUT templates.lst -OUTPUT_DIR /home/query99/

    【讨论】:

    【解决方案3】:

    让我们描述一下基本步骤:

    1. 在进行后续步骤之前仔细检查所需的 TPC-DS 套件尚未为您的数据库准备好

    2. 下载TPC-DS Tools

    3. “v2.11.0rc2\tools\How_To_Guide-DS-V2.0.0.docx”中描述的构建工具(我使用VS2015

    4. 创建数据库

    采用 tpcds.sqltpcds_ri.sql 中描述的 DB 模式(它们位于 'v2.11.0rc2\tools\' -folder),如果需要,适合您的数据库。

    1. 生成存储到数据库的数据
    # Windows
    dsdgen.exe /scale 1 /dir .\tmp /suffix _001.dat
    
    # Linux
    dsdgen -scale 1 -dir /tmp -suffix _001.dat
    
    1. 上传数据到数据库
    # example for ClickHouse
    
    database_name=tpcds
    ch_password=12345
    
    for file_fullpath in /tmp/tpc-ds/*.dat; do
      filename=$(echo ${file_fullpath##*/})
      tablename=$(echo ${filename%_*})
      echo " - $(date +"%T"): start processing $file_fullpath (table: $tablename)"
    
      query="INSERT INTO $database_name.$tablename FORMAT CSV"
      cat $file_fullpath | clickhouse-client --format_csv_delimiter="|" --query="$query" --password $ch_password
    done
    
    1. 生成查询
    # Windows
    set tmpl_lst_path="..\query_templates\templates.lst"
    set tmpl_dir="..\query_templates"
    set dialect_path="..\..\clickhouse-dialect"
    set result_dir="..\queries"
    set tmpl_name="query1.tpl"
    
    dsqgen /input %tmpl_lst_path% /directory %tmpl_dir% /dialect %dialect_path% /output_dir %result_dir% /scale 1 /verbose y /template %tmpl_name%
    
    # Linux
    # see for example https://github.com/pingcap/tidb-bench/blob/master/tpcds/genquery.sh
    

    要修复错误“在初始化之前使用了替换..”请遵循fix

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多