读取数据共享使用三角洲共享开放共享

本文描述了如何读取数据,与你共享使用三角洲共享公开分享协议。在开放共享,您使用一个凭证文件分享给你的团队成员的数据提供商获得安全的读取访问共享数据。坚持直到供应商停止共享数据的访问。更新实时数据在附近。你可以阅读和共享数据的副本,但你不能修改源数据。

请注意

如果数据共享使用Databricks-to-Databricks三角洲与你分享,你不需要一个凭证文件来访问数据。说明,请参阅读取数据共享使用Databricks-to-Databricks三角洲共享

接下来的小节描述如何访问和读取共享数据使用凭证文件在砖,Apache火花,熊猫,BI。三角洲的完整列表共享连接器和如何使用它们的信息,看到了三角洲开源共享文档bob下载地址。如果你遇到麻烦访问共享数据,联系的数据提供者。

请注意

合作伙伴集成,除非特别指出,第三方提供的,你必须有一个帐户与适当的提供者使用他们的产品和服务。尽管砖最好保持更新这些内容,我们没有表示关于集成或合作伙伴集成页面上的内容的准确性。接触到适当的关于集成供应商。

在你开始之前

  • 你的团队的一员必须下载证书文件共享的数据提供者。看到获得在开放共享模型

    他们应该使用安全通道来与你分享一个文件或文件的位置。

  • 注意,模式命名information_schema不能导入目录metastore统一,因为这模式名称是保留在统一的目录。

砖:读取共享数据使用统一目录

如果启用了您的工作区统一目录,您可以使用砖统一目录CLI目录metastore统一创建提供程序对象。然后您可以使用相同的过程管理和访问共享数据作为一个接受者的股票得到了使用Databricks-to-Databricks分享

请注意

本节讨论如何处理数据与你共享使用开放共享。如果统一启用您的工作区目录和数据提供者和你共享数据没有提供一个证书文件,供应商可能使用Databricks-to-Databricks共享,你应该去相反的指示读取数据共享使用Databricks-to-Databricks三角洲共享

权限要求:Metastore管理员或用户CREATE_PROVIDERmetastore特权。

要创建提供者,您必须访问下载的证书文件。看到获得在开放共享模型

运行以下命令使用砖CLI,替换<提供者名称>与你想要的名字给提供者config.share你下载的证书文件的路径。

砖unity-catalog提供者创建——名称<提供者名称>\——recipient-profile-json-file config.share

你现在可以查看提供者,查看股票提供者与你共享,使用数据浏览和访问数据在这些股票,砖统一目录CLI、或SQL命令砖笔记本或砖SQL查询编辑器中,而不必直接引用一个凭证文件。有关详细说明,请参见如下:

砖:读取共享数据使用开放共享连接器

本节描述如何使用一个开放共享连接器访问共享数据使用一个笔记本在你砖的工作区。你或你的团队的另一个成员存储DBFS凭证文件,然后使用它来验证数据提供者的砖帐户并读取数据,数据提供商与你共享。

请注意

有两个其他选项用于读取共享数据使用砖:

在本例中,您创建一个笔记本多个单元可以独立运行。你可以添加笔记本命令序列相同的细胞和运行它们。

步骤1:将证书文件存储在DBFS (Python指令)

在这个步骤中,您使用Python笔记本在砖存储凭证文件,这样用户在您的团队可以访问共享数据。

跳到下一个步骤,如果你或者你的团队已经存储在DBFS凭证文件。

  1. 在文本编辑器,打开凭证文件。

  2. 在你的砖工作区,点击New >笔记本

    • 输入一个名称。

    • 设置默认语言Python的笔记本。

    • 选择连接到一个集群的笔记本。选择一个集群运行砖运行时8.4或以上或集群Apache火花连接器库安装。关于集群安装库的更多信息,请参阅

    • 点击创建

    笔记本在记事本编辑器中打开。

  3. 使用Python或熊猫访问共享数据,安装delta-sharing Python连接器。在笔记本电脑编辑器中,粘贴下面的命令:

    % sh pip安装delta-sharing
  4. 运行单元。

    delta-sharingPython库被安装在集群如果不是已经安装了。

  5. 在一个新细胞,粘贴下面的命令,上传的内容在DBFS凭证文件到一个文件夹。替换的变量如下:

    • < dbfs-path >:文件夹的路径你想保存凭证文件

    • < credential-file-contents >:凭证的内容文件。这不是一个文件路径,但是复制的文件的内容。

      证书文件包含JSON定义三个字段:shareCredentialsVersion,端点,bearerToken

      % scala dbutils.fs.put (“< dbfs-path > / config。”、“分享”“< credential-file-contents >”“”)
  6. 运行单元。

    证书文件上传后,您可以删除这个细胞。所有工作空间用户可以从DBFS读取证书文件,和证书文件可用在所有集群DBFS和SQL仓库在工作区中。删除单元格,单击x在细胞操作菜单细胞的行为在最右边。

步骤2:使用一个笔记本列表和阅读共享表

在这个步骤中,您的表列表分享,或一组共享表和分区,您查询一个表。

  1. 使用Python,分享的表列表。

    在一个新细胞,粘贴下面的命令。取代< dbfs-path >与创建的路径步骤1:将证书文件存储在DBFS (Python指令)

    当代码运行时,Python读取证书文件从DBFS集群。在DBFS访问数据存储路径/ dbfs /

    进口delta_sharing客户端=delta_sharingSharingClient(f“/ dbfs / < dbfs-path > / config.share”)客户端list_all_tables()
  2. 运行单元。

    结果是一个数组表,每个表的元数据。下面的输出显示了两个表:

    [10]:[表(name = ' example_table,分享=“example_share_0”模式=“违约”),表(name = ' other_example_table,分享=“example_share_0”模式=“违约”))

    如果输出为空或者不含您期望的表,数据提供者联系。

  3. 查询一个共享的表。

    • 使用Scala:

      在一个新细胞,粘贴下面的命令。当代码运行时,凭证文件读取DBFS JVM。

      替换的变量如下:

      • <配置文件路径>:DBFS证书文件的路径。例如,/ < dbfs-path > / config.share

      • <共享名>的值:分享=为表。

      • <模式名称>的值:模式=为表。

      • <表名称>的值:name =为表。

      % scala spark.read.format (“deltaSharing”) .load(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”).limit (10);

      运行单元。每次加载共享表,你看到新鲜的数据来源。

    • 使用SQL:

      使用SQL查询数据,您在工作区中创建一个本地表从共享表,然后查询当地表。共享数据没有存储或在本地缓存表中。每次查询当地的表,你看共享数据的当前状态。

      在一个新细胞,粘贴下面的命令。

      替换的变量如下:

      • < local-table-name >:当地的表的名称。

      • <配置文件路径>:证书文件的位置。

      • <共享名>的值:分享=为表。

      • <模式名称>的值:模式=为表。

      • <表名称>的值:name =为表。

      % sql DROP TABLE如果存在table_name;使用deltaSharing位置创建表< local-table-name > " <配置文件路径> # <共享名>。<模式名称>。<表名称>”;SELECT * FROM < local-table-name >限制10;

      当您运行该命令时,直接查询共享数据。作为测试,表查询并返回第一个10个结果。

    如果输出为空或者不包含您期望的数据,数据提供者联系。

Apache火花:读取共享数据

按照以下步骤使用火花3访问共享数据。x或以上。

这些说明假设您已经访问凭证文件共享的数据提供者。看到获得在开放共享模型

安装三角洲分享Python和火花连接器

访问共享数据相关的元数据,如表与你共享列表,执行以下操作。这个示例使用Python。

  1. 安装delta-sharing Python连接器:

    pip安装delta-sharing
  2. 安装Apache火花连接器

使用火花共享表列表

分享的表列表。在接下来的例子中,替换<配置文件路径>证书文件的位置。

进口delta_sharing客户端=delta_sharingSharingClient(f“<配置文件路径> / config.share”)客户端list_all_tables()

结果是一个数组表,每个表的元数据。下面的输出显示了两个表:

[10]:[表(name = ' example_table,分享=“example_share_0”模式=“违约”),表(name = ' other_example_table,分享=“example_share_0”模式=“违约”))

如果输出为空或者不含您期望的表,数据提供者联系。

访问共享数据使用火花

运行以下,取代这些变量:

  • <配置文件路径>:证书文件的位置。

  • <共享名>的值:分享=为表。

  • <模式名称>的值:模式=为表。

  • <表名称>的值:name =为表。

  • <版本的>:可选的。的版本表加载数据。前提是数据提供者股票的历史表。需要delta-sharing-spark0.5.0或以上。

  • < timestamp-as-of >:可选的。加载数据的版本之前或在给定的时间戳。前提是数据提供者股票的历史表。需要delta-sharing-spark0.6.0或以上。

delta_sharingload_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,版本= <版本- - - - - -作为- - - - - ->)火花格式(“deltaSharing”)\选项(“versionAsOf”,<版本- - - - - -作为- - - - - ->)\负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)\限制(10))delta_sharingload_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,时间戳= <时间戳- - - - - -作为- - - - - ->)火花格式(“deltaSharing”)\选项(“timestampAsOf”,<时间戳- - - - - -作为- - - - - ->)\负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)\限制(10))

运行以下,取代这些变量:

  • <配置文件路径>:证书文件的位置。

  • <共享名>的值:分享=为表。

  • <模式名称>的值:模式=为表。

  • <表名称>的值:name =为表。

  • <版本的>:可选的。的版本表加载数据。前提是数据提供者股票的历史表。需要delta-sharing-spark0.5.0或以上。

  • < timestamp-as-of >:可选的。加载数据的版本之前或在给定的时间戳。前提是数据提供者股票的历史表。需要delta-sharing-spark0.6.0或以上。

火花格式(“deltaSharing”)选项(“versionAsOf”,<版本- - - - - -作为- - - - - ->)负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)限制(10)火花格式(“deltaSharing”)选项(“timestampAsOf”,<版本- - - - - -作为- - - - - ->)负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)限制(10)

访问共享使用火花更改数据提要

如果表历史上一直与你分享和改变数据提要(CDF)启用源表,您可以访问更改数据提要通过运行以下,取代这些变量。需要delta-sharing-spark0.5.0或以上。

必须提供一个且只有一个启动参数。

  • <配置文件路径>:证书文件的位置。

  • <共享名>的值:分享=为表。

  • <模式名称>的值:模式=为表。

  • <表名称>的值:name =为表。

  • < starting-version >:可选的。查询的起始版本、包容。指定为长。

  • < ending-version >:可选的。的结局版本查询、包容。如果结局版本没有提供,API使用最新的表格版本。

  • < starting-timestamp >:可选的。查询的起始时间戳,这是转换为一个版本创建大于或等于这个时间戳。指定为字符串的格式yyyy-mm-ddhh: mm: ss (.fffffffff)

  • < ending-timestamp >:可选的。查询的结束时间戳,这是转换为一个版本之前创建或等于这个时间戳。指定为字符串的格式yyyy-mm-ddhh: mm: ss (.fffffffff)

delta_sharingload_table_changes_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_version= <开始- - - - - -版本>,ending_version= <结束- - - - - -版本>)delta_sharingload_table_changes_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_timestamp= <开始- - - - - -时间戳>,ending_timestamp= <结束- - - - - -时间戳>)火花格式(“deltaSharing”)选项(“readChangeFeed”,“真正的”)\选项(“statingVersion”,<开始- - - - - -版本>)\选项(“endingVersion”,<结束- - - - - -版本>)\负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)火花格式(“deltaSharing”)选项(“readChangeFeed”,“真正的”)\选项(“startingTimestamp”,<开始- - - - - -时间戳>)\选项(“endingTimestamp”,<结束- - - - - -时间戳>)\负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)
火花格式(“deltaSharing”)。选项(“readChangeFeed”,“真正的”)选项(“statingVersion”,<开始- - - - - -版本>)选项(“endingVersion”,<结束- - - - - -版本>)负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)火花格式(“deltaSharing”)。选项(“readChangeFeed”,“真正的”)选项(“startingTimestamp”,<开始- - - - - -时间戳>)选项(“endingTimestamp”,<结束- - - - - -时间戳>)负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)

如果输出为空或者不包含您期望的数据,数据提供者联系。

访问一个共享表使用火花结构化流

如果表历史是与你分享,你可以流读取共享数据。需要delta-sharing-spark0.6.0或以上。

支持选项:

  • ignoreDeletes:忽略事务删除数据。

  • ignoreChanges:如果文件重写处理文档更新源表中的数据修改操作,比如更新,合并,删除(分区),或覆盖。不变行仍然可以发出。所以你的下游消费者应该能够处理重复。删除不是下游传播。ignoreChanges包容ignoreDeletes。因此如果你使用ignoreChanges,你流将不会被删除或更新源表。

  • startingVersion:从共享表版本。所有表变化从这个版本(包容)将读取流源。

  • startingTimestamp:从时间戳。所有表更改后承诺或时间戳(包容)将读取流源。例子:“2023-01-0100:00:00.0”

  • maxFilesPerTrigger:新文件的数量被认为是在每个micro-batch。

  • maxBytesPerTrigger:在每个micro-batch被处理的数据量。这个选项设置一个“软马克斯”,这意味着一个批处理过程大约这个过程的数据量,可能超过极限为了使流查询前进情况下的最小输入单位超过这个极限。

  • readChangeFeed:流读共享表的数据提要的变化。

不支持的选项:

  • Trigger.availableNow

样品结构流查询

火花readStream格式(“deltaSharing”)选项(“startingVersion”,0)选项(“ignoreChanges”,真正的)选项(“maxFilesPerTrigger”,10)负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)
火花readStream格式(“deltaSharing”)\选项(“startingVersion”,0)\选项(“ignoreDeletes”,真正的)\选项(“maxBytesPerTrigger”,10000年)\负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)

另请参阅流媒体在砖

熊猫:读取共享数据

按照以下步骤在熊猫0.25.3以上访问共享数据。

这些说明假设您已经访问凭证文件共享的数据提供者。看到获得在开放共享模型

δ共享的Python安装连接器

访问共享数据相关的元数据,如表与你共享列表,您必须安装delta-sharing Python连接器

pip安装delta-sharing

使用熊猫共享表列表

列出的表,运行以下,取代<配置文件路径> / config.share证书文件的位置。

进口delta_sharing客户端=delta_sharingSharingClient(f“<配置文件路径> / config.share”)客户端list_all_tables()

如果输出为空或者不含您期望的表,数据提供者联系。

访问共享数据使用熊猫

在大熊猫使用Python访问共享数据,运行以下,替换的变量如下:

  • <配置文件路径>:证书文件的位置。

  • <共享名>的值:分享=为表。

  • <模式名称>的值:模式=为表。

  • <表名称>的值:name =为表。

进口delta_sharingdelta_sharingload_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)

访问一个共享使用熊猫更改数据提要

访问共享表的更改数据提要大熊猫使用Python运行以下,替换的变量如下。改变数据可能不可用,取决于是否数据提供商共享表的更改数据提要。

  • < starting-version >:可选的。查询的起始版本、包容。

  • < ending-version >:可选的。的结局版本查询、包容。

  • < starting-timestamp >:可选的。查询的起始时间戳。这是转换为一个版本创建大于或等于这个时间戳。

  • < ending-timestamp >:可选的。查询的结束时间戳。这是转化为之前创建一个版本或者等于这个时间戳。

进口delta_sharingdelta_sharingload_table_changes_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_version= <开始- - - - - -版本>,ending_version= <开始- - - - - -版本>)delta_sharingload_table_changes_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_timestamp= <开始- - - - - -时间戳>,ending_timestamp= <结束- - - - - -时间戳>)

如果输出为空或者不包含您期望的数据,数据提供者联系。

权力BI:读取共享数据

权力BI三角洲分享连接器允许您发现,分析和可视化数据集与你通过三角洲共享开放共享协议。

需求

连接到数据砖

使用三角洲分享连接器连接到砖,做到以下几点:

  1. 用文本编辑器打开共享凭证文件检索的端点URL和令牌。

  2. 打开电源BI桌面。

  3. 获取数据菜单、搜索三角洲分享

  4. 选择连接器并单击连接

  5. 输入凭证的端点URL,你复制文件到三角洲共享服务器URL字段。

  6. 可选地,高级选项选项卡,设置一个行限制您可以下载的最大行数。这是默认设置为100万行。

  7. 点击好吧

  8. 身份验证,复制从凭证文件检索的令牌不记名的令牌

  9. 点击连接

限制权力的BI三角洲分享连接器

权力BI三角洲分享连接器有以下限制:

  • 连接器的数据负载必须适合你的机器的记忆。为了确保这一点,连接器的限制进口数量的行行限制您在“高级选项”选项卡设置掌权BI桌面。