读取数据共享使用三角洲共享开放共享
本文描述了如何读取数据,与你共享使用三角洲共享公开分享协议。在开放共享,您使用一个凭证文件分享给你的团队成员的数据提供商获得安全的读取访问共享数据。坚持直到供应商停止共享数据的访问。更新实时数据在附近。你可以阅读和共享数据的副本,但你不能修改源数据。
请注意
如果数据共享使用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_PROVIDER
metastore特权。
要创建提供者,您必须访问下载的证书文件。看到获得在开放共享模型。
运行以下命令使用砖CLI,替换<提供者名称>
与你想要的名字给提供者config.share
你下载的证书文件的路径。
砖unity-catalog提供者创建——名称<提供者名称>\——recipient-profile-json-file config.share
你现在可以查看提供者,查看股票提供者与你共享,使用数据浏览和访问数据在这些股票,砖统一目录CLI、或SQL命令砖笔记本或砖SQL查询编辑器中,而不必直接引用一个凭证文件。有关详细说明,请参见如下:
砖:读取共享数据使用开放共享连接器
本节描述如何使用一个开放共享连接器访问共享数据使用一个笔记本在你砖的工作区。你或你的团队的另一个成员存储DBFS凭证文件,然后使用它来验证数据提供者的砖帐户并读取数据,数据提供商与你共享。
请注意
有两个其他选项用于读取共享数据使用砖:
你获得证书文件和砖为统一启用工作区目录。您可以使用统一目录管理对共享数据的访问。说明,请参阅砖:读取共享数据使用统一目录。
数据提供商使用Databricks-to-Databricks分享,没有与你们分享一个凭证文件。你必须访问数据使用统一目录。说明,请参阅读取数据共享使用Databricks-to-Databricks三角洲共享。
在本例中,您创建一个笔记本多个单元可以独立运行。你可以添加笔记本命令序列相同的细胞和运行它们。
步骤1:将证书文件存储在DBFS (Python指令)
在这个步骤中,您使用Python笔记本在砖存储凭证文件,这样用户在您的团队可以访问共享数据。
跳到下一个步骤,如果你或者你的团队已经存储在DBFS凭证文件。
在文本编辑器,打开凭证文件。
在你的砖工作区,点击New >笔记本。
输入一个名称。
设置默认语言Python的笔记本。
选择连接到一个集群的笔记本。选择一个集群运行砖运行时8.4或以上或集群Apache火花连接器库安装。关于集群安装库的更多信息,请参阅库。
点击创建。
笔记本在记事本编辑器中打开。
使用Python或熊猫访问共享数据,安装delta-sharing Python连接器。在笔记本电脑编辑器中,粘贴下面的命令:
% sh pip安装delta-sharing
运行单元。
的
delta-sharing
Python库被安装在集群如果不是已经安装了。在一个新细胞,粘贴下面的命令,上传的内容在DBFS凭证文件到一个文件夹。替换的变量如下:
< dbfs-path >
:文件夹的路径你想保存凭证文件< credential-file-contents >
:凭证的内容文件。这不是一个文件路径,但是复制的文件的内容。证书文件包含JSON定义三个字段:
shareCredentialsVersion
,端点
,bearerToken
。% scala dbutils.fs.put (“< dbfs-path > / config。”、“分享”“< credential-file-contents >”“”)
运行单元。
证书文件上传后,您可以删除这个细胞。所有工作空间用户可以从DBFS读取证书文件,和证书文件可用在所有集群DBFS和SQL仓库在工作区中。删除单元格,单击x在细胞操作菜单在最右边。
步骤2:使用一个笔记本列表和阅读共享表
在这个步骤中,您的表列表分享,或一组共享表和分区,您查询一个表。
使用Python,分享的表列表。
在一个新细胞,粘贴下面的命令。取代
< dbfs-path >
与创建的路径步骤1:将证书文件存储在DBFS (Python指令)。当代码运行时,Python读取证书文件从DBFS集群。在DBFS访问数据存储路径
/ dbfs /
。进口delta_sharing客户端=delta_sharing。SharingClient(f“/ dbfs / < dbfs-path > / config.share”)客户端。list_all_tables()
运行单元。
结果是一个数组表,每个表的元数据。下面的输出显示了两个表:
[10]:[表(name = ' example_table,分享=“example_share_0”模式=“违约”),表(name = ' other_example_table,分享=“example_share_0”模式=“违约”))
如果输出为空或者不含您期望的表,数据提供者联系。
查询一个共享的表。
使用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或以上。
这些说明假设您已经访问凭证文件共享的数据提供者。看到获得在开放共享模型。
使用火花共享表列表
分享的表列表。在接下来的例子中,替换<配置文件路径>
证书文件的位置。
进口delta_sharing客户端=delta_sharing。SharingClient(f“<配置文件路径> / config.share”)客户端。list_all_tables()
结果是一个数组表,每个表的元数据。下面的输出显示了两个表:
[10]:[表(name = ' example_table,分享=“example_share_0”模式=“违约”),表(name = ' other_example_table,分享=“example_share_0”模式=“违约”))
如果输出为空或者不含您期望的表,数据提供者联系。
访问共享数据使用火花
运行以下,取代这些变量:
<配置文件路径>
:证书文件的位置。<共享名>
的值:分享=
为表。<模式名称>
的值:模式=
为表。<表名称>
的值:name =
为表。<版本的>
:可选的。的版本表加载数据。前提是数据提供者股票的历史表。需要delta-sharing-spark
0.5.0或以上。< timestamp-as-of >
:可选的。加载数据的版本之前或在给定的时间戳。前提是数据提供者股票的历史表。需要delta-sharing-spark
0.6.0或以上。
delta_sharing。load_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,版本= <版本- - - - - -作为- - - - - -的>)火花。读。格式(“deltaSharing”)\。选项(“versionAsOf”,<版本- - - - - -作为- - - - - -的>)\。负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)\。限制(10))delta_sharing。load_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,时间戳= <时间戳- - - - - -作为- - - - - -的>)火花。读。格式(“deltaSharing”)\。选项(“timestampAsOf”,<时间戳- - - - - -作为- - - - - -的>)\。负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)\。限制(10))
运行以下,取代这些变量:
<配置文件路径>
:证书文件的位置。<共享名>
的值:分享=
为表。<模式名称>
的值:模式=
为表。<表名称>
的值:name =
为表。<版本的>
:可选的。的版本表加载数据。前提是数据提供者股票的历史表。需要delta-sharing-spark
0.5.0或以上。< timestamp-as-of >
:可选的。加载数据的版本之前或在给定的时间戳。前提是数据提供者股票的历史表。需要delta-sharing-spark
0.6.0或以上。
火花。读。格式(“deltaSharing”)。选项(“versionAsOf”,<版本- - - - - -作为- - - - - -的>)。负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)。限制(10)火花。读。格式(“deltaSharing”)。选项(“timestampAsOf”,<版本- - - - - -作为- - - - - -的>)。负载(“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)。限制(10)
访问共享使用火花更改数据提要
如果表历史上一直与你分享和改变数据提要(CDF)启用源表,您可以访问更改数据提要通过运行以下,取代这些变量。需要delta-sharing-spark
0.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_sharing。load_table_changes_as_spark(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_version= <开始- - - - - -版本>,ending_version= <结束- - - - - -版本>)delta_sharing。load_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-spark
0.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以上访问共享数据。
这些说明假设您已经访问凭证文件共享的数据提供者。看到获得在开放共享模型。
使用熊猫共享表列表
列出的表,运行以下,取代<配置文件路径> / config.share
证书文件的位置。
进口delta_sharing客户端=delta_sharing。SharingClient(f“<配置文件路径> / config.share”)客户端。list_all_tables()
如果输出为空或者不含您期望的表,数据提供者联系。
访问共享数据使用熊猫
在大熊猫使用Python访问共享数据,运行以下,替换的变量如下:
<配置文件路径>
:证书文件的位置。<共享名>
的值:分享=
为表。<模式名称>
的值:模式=
为表。<表名称>
的值:name =
为表。
进口delta_sharingdelta_sharing。load_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”)
访问一个共享使用熊猫更改数据提要
访问共享表的更改数据提要大熊猫使用Python运行以下,替换的变量如下。改变数据可能不可用,取决于是否数据提供商共享表的更改数据提要。
< starting-version >
:可选的。查询的起始版本、包容。< ending-version >
:可选的。的结局版本查询、包容。< starting-timestamp >
:可选的。查询的起始时间戳。这是转换为一个版本创建大于或等于这个时间戳。< ending-timestamp >
:可选的。查询的结束时间戳。这是转化为之前创建一个版本或者等于这个时间戳。
进口delta_sharingdelta_sharing。load_table_changes_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_version= <开始- - - - - -版本>,ending_version= <开始- - - - - -版本>)delta_sharing。load_table_changes_as_pandas(f“<配置文件路径> # <共享名>。<模式名称>。<表名称>”,starting_timestamp= <开始- - - - - -时间戳>,ending_timestamp= <结束- - - - - -时间戳>)
如果输出为空或者不包含您期望的数据,数据提供者联系。