使用无服务器 SQL 池分析数据

在本教程中,你将了解如何通过无服务器 SQL 池分析对数据。

内置无服务器 SQL 池

通过无服务器 SQL 池,你可以使用 SQL,而无需预留容量。 无服务器 SQL 池的计费是基于运行查询所处理的数据量,而不是运行查询所使用的节点数。

每个工作区都具有名为“内置”的预配置无服务器 SQL 池。

使用无服务器 SQL 池分析纽约市出租车数据

注释

请确保已将示例数据放入主存储帐户中

  1. 在Synapse Studio中,转到 Develop 中心

  2. 创建一个新的 SQL 脚本。

  3. 将以下代码粘贴到脚本中。 (将 contosolake 更改为您的存储帐户的名称,并将 users 更改为您的容器的名称。)

    SELECT
        TOP 100 *
    FROM
        OPENROWSET(
            BULK 'https://contosolake.dfs.core.chinacloudapi.cn/users/NYCTripSmall.parquet',
            FORMAT='PARQUET'
        ) AS [result]
    
  4. 选择“ 运行”。

数据浏览只是一种简化的方案,可以在其中了解数据的基本特征。 在 本教程中详细了解数据浏览和分析。

创建数据浏览数据库

可以直接通过 master 数据库浏览文件的内容。 对于一些简单的数据浏览方案,无需创建单独的数据库。 但是,在继续进行数据浏览时,可能需要创建一些实用工具对象,例如:

  • 表示存储账户命名引用的外部数据源。
  • 用于指定如何对外部数据源进行身份验证的数据库范围凭据。
  • 有权access某些数据源或数据库对象的数据库用户。
  • 可在查询中使用的实用工具视图、过程和函数。

小窍门

在Synapse Studio中,打开新的 SQL 脚本时,可以从顶部工具栏中的数据库下拉菜单中选择 master。 这是为无服务器 SQL 池显示的默认系统数据库。

  1. 使用 master 数据库为自定义数据库对象创建单独的数据库。 无法在 master 数据库中创建自定义数据库对象。

    CREATE DATABASE DataExplorationDB 
                    COLLATE Latin1_General_100_BIN2_UTF8
    

    重要

    使用带有 _UTF8 后缀的排序规则确保 UTF-8 文本正确转换为 VARCHAR 列。 Latin1_General_100_BIN2_UTF8在从 Parquet 文件和 Azure Cosmos DB 容器读取数据的查询中提供最佳性能。 有关更改排序规则的详细信息,请参阅 Synapse SQL 支持的排序规则类型。

  2. 使用以下命令将数据库上下文从 master 切换为 DataExplorationDB。 还可以使用 UI 控件“使用数据库”来切换当前数据库:

    USE DataExplorationDB
    
  3. 从 DataExplorationDB 创建实用工具对象,例如凭据和数据源。

    CREATE EXTERNAL DATA SOURCE ContosoLake
    WITH ( LOCATION = 'https://contosolake.dfs.core.chinacloudapi.cn')
    

    注释

    可创建没有凭据的外部数据源。 如果凭据不存在,则调用方的身份将用于访问外部数据源。

  4. (可选)使用新创建的 DataExplorationDB 数据库为DataExplorationDB中的用户创建登录名,该登录名将access外部数据:

    CREATE LOGIN data_explorer WITH PASSWORD = 'My Very Strong Password 1234!';
    

    然后,在 DataExplorationDB 中为上述登录名创建一个数据库用户,并授予其 ADMINISTER DATABASE BULK OPERATIONS 权限。

    CREATE USER data_explorer FOR LOGIN data_explorer;
    GO
    GRANT ADMINISTER DATABASE BULK OPERATIONS TO data_explorer;
    GO
    
  5. 使用相对路径和数据源浏览文件的内容:

    SELECT
        TOP 100 *
    FROM
        OPENROWSET(
                BULK '/users/NYCTripSmall.parquet',
                DATA_SOURCE = 'ContosoLake',
                FORMAT='PARQUET'
        ) AS [result]
    
  6. 将更改发布到工作区。

数据浏览数据库只是一个简单的占位符,在其中可存储实用工具对象。 Synapse SQL 池使你能够做更多,并创建一个逻辑数据仓库——一个基于 Azure 数据源构建的关系层。 了解更多关于本教程中构建逻辑数据仓库的方法。

后续步骤