Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается, как считывать общие данные с помощью протокола открытого общего доступа OpenSharing с маркерами носителя. В ней содержатся инструкции по чтению общих данных с помощью следующих средств:
В этой модели общего доступа вы используете файл учетных данных, общий доступ к которым предоставляется участнику вашей команды поставщиком данных, чтобы получить безопасный доступ на чтение к общим данным. Доступ сохраняется до тех пор, пока учетные данные действительны, и поставщик продолжает предоставлять общий доступ к данным. Поставщики управляют истечением срока действия учетных данных и процессом их обновления. Обновления данных доступны практически в режиме реального времени. Вы можете считывать и создавать копии общих данных, но изменить исходные данные нельзя.
Note
Если вы предоставили доступ к данным с помощью Databricks-to-Databricks OpenSharing, вам не нужен файл учетных данных для доступа к данным, и эта страница не применяется к вам. Вместо этого см. Чтение данных, к которым предоставлен доступ через Databricks-to-Databricks OpenSharing (для получателей).
В следующих разделах описывается использование Apache Spark, pandasPower BI и клиентов Iceberg для доступа к общим данным и чтению общих данных с помощью файла учетных данных. Полный список соединителей OpenSharing и сведения об их использовании см. в документации по OpenSharing открытый код. При возникновении проблем с доступом к общим данным обратитесь к поставщику данных.
Перед началом работы
Член вашей команды должен скачать файл учетных данных, предоставленный поставщиком данных, и использовать безопасный канал для передачи вам этого файла или его местоположения. См. раздел «Получение доступа» в модели совместного использования Databricks-to-Open.
Для получения документации по соединителю см. страницу учетных данных для загрузки.
Клиенты Айсберг: чтение данных общего доступа
Используйте внешние клиенты Iceberg, такие как Snowflake, Trino, Flink и Spark, для чтения общих ресурсов данных с доступом к нулю копирования с помощью API каталога REST Apache Iceberg.
Получение учетных данных подключения
Прежде чем получить доступ к общим ресурсам данных с внешними клиентами Iceberg, соберите следующие учетные данные:
- Конечная точка каталога REST Iceberg
- Допустимый маркер носителя
- Имя общей папки
- (Необязательно) Пространство имен или имя схемы
- (Необязательно) Имя таблицы
Конечная точка каталога REST Iceberg (icebergEndpoint) и токен Bearer находятся в файле учетных данных, который был передан вам вашим поставщиком данных. Дополнительные сведения см. в разделе "Перед началом работы". Имя общего ресурса, пространство имен и имя таблицы можно обнаружить программным способом с помощью API OpenSharing.
Important
Элемент icebergEndpoint найден в файле учетных данных и имеет формат <workspace-url>/api/2.0/delta-sharing/metastores/<metastore-id>/iceberg.
В следующих примерах показано, как получить дополнительные учетные данные. Введите конечную точку, конечную точку Айсберга и маркер носителя из файла учетных данных, если это необходимо:
// List shares
curl -X GET "<endpoint>/shares" \
-H "Authorization: Bearer <bearerToken>"
// List namespaces
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces" \
-H "Authorization: Bearer <bearerToken>"
// List tables
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces/<namespace>/tables" \
-H "Authorization: Bearer <bearerToken>"
Note
Этот метод всегда получает наиболее актуальный список ресурсов. Однако для этого требуется доступ к Интернету и может быть труднее интегрировать в среды без кода.
Настройка каталога Iceberg
После получения необходимых учетных данных подключения настройте клиента для использования конечных точек каталога REST Iceberg для создания и запроса таблиц.
Для каждой доли создайте интеграцию с каталогом.
USE ROLE ACCOUNTADMIN; CREATE OR REPLACE CATALOG INTEGRATION <CATALOG_PLACEHOLDER> CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = '<icebergEndpoint>', WAREHOUSE = '<share_name>', ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS ) REST_AUTHENTICATION = ( TYPE = BEARER, BEARER_TOKEN = '<bearerToken>' ) ENABLED = TRUE;При необходимости добавьте
REFRESH_INTERVAL_SECONDS, чтобы метаданные оставались актуальными. Задайте значение на основе частоты обновления каталога.REFRESH_INTERVAL_SECONDS = 30После настройки каталога создайте базу данных из каталога. Это автоматически создает все схемы и таблицы в этом каталоге.
CREATE DATABASE <DATABASE_PLACEHOLDER> LINKED_CATALOG = ( CATALOG = <CATALOG_PLACEHOLDER> );Чтобы убедиться, что общий доступ выполнен успешно, выполните запрос из таблицы в базе данных. Вам следует увидеть общие данные из Azure Databricks.
Если результат пуст или возникает ошибка, выполните следующие распространенные действия по устранению неполадок:
- Дважды проверьте привилегии, состояние создания моментальных снимков и учетные данные REST.
- Обратитесь к поставщику данных.
- Ознакомьтесь с документацией, относящейся к клиенту Iceberg.
Пример. Доступ к общим таблицам с помощью разных клиентов Iceberg
В следующих примерах показано, как получить доступ к открытым таблицам с помощью внешних клиентов Iceberg, таких как Snowflake, Apache Spark, PyIceberg и REST API после получения учетных данных подключения. Дополнительные сведения о получении учетных данных подключения см. в разделе "Перед началом работы".
Snowflake
Чтобы прочитать общие ресурсы данных в Snowflake, отправьте скачанный файл учетных данных и создайте необходимую команду SQL:
В ссылке активации OpenSharing щелкните значок Snowflake.
На странице интеграции Snowflake отправьте файл учетных данных, полученный от поставщика данных.
После загрузки учетных данных выберите долю, к которой хотите получить доступ в платформе Snowflake.
Нажмите кнопку "Создать SQL " после выбора нужных ресурсов.
Скопируйте и вставьте созданный SQL в лист Snowflake. Замените
CATALOG_PLACEHOLDERименем каталога, который вы хотите использовать, иDATABASE_PLACEHOLDERименем базы данных, которую вы хотите использовать.
Ограничения
Подключение к каталогу REST Iceberg в Snowflake имеет следующие ограничения:
- Файл метаданных не обновляется автоматически с помощью последнего моментального снимка. Необходимо полагаться на автоматическое обновление или обновление вручную.
- R2 не поддерживается.
- Применяются все ограничения клиента Iceberg .
Apache Spark
Чтобы получить доступ к общим таблицам с помощью Apache Spark, настройте API КАТАЛОГА REST Iceberg с помощью следующих параметров. Замените <spark-catalog-name> именем каталога и укажите учетные данные подключения:
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
# Configuration for accessing tables shared using Delta Sharing
"spark.sql.catalog.<spark-catalog-name>":"org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<spark-catalog-name>.type": "rest",
"spark.sql.catalog.<spark-catalog-name>.uri": "<icebergEndpoint>",
"spark.sql.catalog.<spark-catalog-name>.token": "<bearerToken>",
"spark.sql.catalog.<spark-catalog-name>.warehouse":"<share_name>",
"spark.sql.catalog.<spark-catalog-name>.scope":"all-apis"
PyIceberg
PyIceberg — это реализация Python для доступа к таблицам Iceberg без использования JVM. PyIceberg требуется pyarrow для операций таблицы, таких как чтение данных и проверка метаданных таблицы. Установите PyIceberg с дополнительным компонентом pyarrow.
pip install "pyiceberg[pyarrow]"
Чтобы получить доступ к общим таблицам, добавьте следующую конфигурацию каталога в файл конфигурации PyIceberg:
catalog:
delta_sharing:
type: rest
uri: <icebergEndpoint>
warehouse: <share_name>
token: <bearerToken>
REST API
Используйте вызов REST API, например следующий curl пример, чтобы загрузить таблицу и получить ее метаданные вместе с временными учетными данными для доступа к файлам данных:
curl -X GET -H "Authorization: Bearer <bearerToken>" -H "Accept: application/json" \
<icebergEndpoint>/v1/shares/<share_name>/namespaces/<schema_name>/tables/<table_name>
Ответ включает метаданные таблицы Iceberg, расположение S3 и временные учетные данные AWS, позволяющие клиенту считывать файлы данных:
{
"metadata-location": "s3://bucket/path/to/iceberg/table/metadata/file",
"metadata": <iceberg-table-metadata-json>,
"config": {
"expires-at-ms": "<epoch-ts-in-millis>",
"s3.access-key-id": "<temporary-s3-access-key-id>",
"s3.session-token": "<temporary-s3-session-token>",
"s3.secret-access-key": "<temporary-secret-access-key>",
"client.region": "<aws-bucket-region-for-metadata-location>"
}
}
Ограничения клиента Айсберга
Следующие ограничения применяются при запросе данных OpenSharing от клиентов Iceberg:
- При перечислении таблиц в пространстве имен, если пространство имен содержит более 100 общих представлений, ответ ограничен первым 100 представлениями.
Apache Spark: чтение общих данных
Выполните следующие действия, чтобы получить доступ к общим данным с помощью Spark 3.x или более поздней версии.
В этих инструкциях предполагается, что у вас есть доступ к файлу учетных данных, который был предоставлен поставщиком данных. См. раздел «Получение доступа» в модели совместного использования Databricks-to-Open.
Important
Убедитесь, что файл учетных данных доступен Apache Spark с помощью абсолютного пути. Путь может ссылаться на облачный объект или том каталога Unity.
Note
Если вы используете Spark в рабочей области Azure Databricks с включённой функцией Unity Catalog и воспользовались пользовательским интерфейсом провайдера для импорта провайдера и обмена, то инструкции в этом разделе к вам не применяются. Доступ к общим таблицам можно получить так же, как и к любой другой таблице, зарегистрированной в каталоге Unity. Не нужно устанавливать соединитель Python delta-sharing или указать путь к файлу учетных данных. См. статью Импорт поставщика данных и чтение общих данных в Azure Databricks.
Установка соединителей OpenSharing Python и Spark
Чтобы получить доступ к метаданным, связанным с общими данными, например списком таблиц, которыми вы поделились, выполните указанные ниже действия. В этом примере используется Python.
Установите коннектор Delta Sharing для Python. Сведения об ограничениях соединителя Python см. в разделе об ограничениях соединителя OpenSharing Python.
pip install delta-sharingУстановите соединитель Apache Spark.
Список совместно используемых таблиц с помощью Spark
Перечислите таблицы в общем доступе. В следующем примере замените <profile-path> на расположение файла учетных данных.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Результатом является массив таблиц, а также метаданные для каждой таблицы. В следующих выходных данных показаны две таблицы:
Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]
Если выходные данные пусты или не содержат ожидаемые таблицы, обратитесь к поставщику данных.
Доступ к общим данным с помощью Spark
Выполните следующие действия, заменив эти переменные:
-
<profile-path>: расположение файла учетных данных. -
<share-name>: значениеshare=для таблицы. -
<schema-name>: значениеschema=для таблицы. -
<table-name>: значениеname=для таблицы. -
<version-as-of>: необязательно. Версия таблицы для загрузки данных. Работает только в том случае, если поставщик данных предоставляет общий доступ к журналу таблицы. Требуетсяdelta-sharing-spark0.5.0 или более поздней версии. -
<timestamp-as-of>: необязательно. Загрузите данные из версии, существующей до заданной отметки времени или на момент этой отметки. Работает только в том случае, если поставщик данных предоставляет общий доступ к журналу таблицы. Требуетсяdelta-sharing-spark0.6.0 или более поздней версии.
Python
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)
spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)
spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
Scala
spark.read.format("deltaSharing")
.option("versionAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
spark.read.format("deltaSharing")
.option("timestampAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
Доступ к общему потоку данных об изменениях с помощью Spark
Если история таблицы была предоставлена вам и канал данных изменений (CDF) включен в исходной таблице, получите доступ к каналу данных изменений, выполнив следующую команду, заменив эти переменные. Требуется delta-sharing-spark 0.5.0 или более поздней версии.
Необходимо указать один начальный параметр.
-
<profile-path>: расположение файла учетных данных. -
<share-name>: значениеshare=для таблицы. -
<schema-name>: значениеschema=для таблицы. -
<table-name>: значениеname=для таблицы. -
<starting-version>: необязательно. Начальная версия запроса включительно. Укажите значение long. -
<ending-version>: необязательно. Конечная версия запроса включительно. Если конечная версия не указана, API использует последнюю версию таблицы. -
<starting-timestamp>: необязательно. Начальная метка времени запроса преобразуется в версию, созданную на момент, равный этой метке времени или позже. Укажите строку в форматеyyyy-mm-dd hh:mm:ss[.fffffffff]. -
<ending-timestamp>: необязательно. Конечная метка времени запроса преобразуется в версию, созданную ранее или равной этой метке времени. Укажите строку в форматеyyyy-mm-dd hh:mm:ss[.fffffffff]
Python
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingVersion", <starting-version>)
.option("endingVersion", <ending-version>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingTimestamp", <starting-timestamp>)
.option("endingTimestamp", <ending-timestamp>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Если выходные данные пусты или не содержат ожидаемые данные, обратитесь к поставщику данных.
Доступ к общей таблице с помощью структурированной потоковой передачи Spark
Если вам предоставили доступ к истории таблицы, вы можете напрямую читать общие данные. Требуется delta-sharing-spark 0.6.0 или более поздней версии.
Поддерживаемые параметры:
-
ignoreDeletes: игнорировать транзакции, которые удаляют данные. -
ignoreChanges: Повторно обработать обновления, если файлы были перезаписаны в исходной таблице из-за операции изменения данных, такой какUPDATE,MERGE INTO,DELETE(в пределах разделов), илиOVERWRITE. Неизменённые строки всё ещё можно выводить. Таким образом, последующие потребители должны иметь возможность обрабатывать дубликаты. Удаления не распространяются вниз по потоку.ignoreChangesвключаетignoreDeletes. Поэтому при использованииignoreChangesваш поток не нарушается ни удалением, ни обновлением исходной таблицы. -
startingVersion: начальная версия общей таблицы. Все изменения таблицы, начиная с этой версии (включительно), считываются источником потоковой передачи. -
startingTimestamp: Метка времени, с которой начинается отсчет. Все изменения таблицы, зафиксированные с указанного момента времени включительно и позже, считываются потоком данных. Пример:"2023-01-01 00:00:00.0". -
maxFilesPerTrigger: количество новых файлов, которые следует учитывать в каждом микропакете. -
maxBytesPerTrigger: объем данных, обрабатываемых в каждом микропакете. Этот параметр задает значение "мягкого максимума", то есть пакет обрабатывает приблизительно такой объем данных и может обработать больше, чтобы потоковый запрос продолжился в случаях, когда наименьший входной блок превышает это ограничение. -
readChangeFeed: поток считывает поток изменения данных общей таблицы.
Поддерживаемые триггеры:
-
Trigger.ProcessingTime: триггер по умолчанию, используемый при отсутствии явного триггера. Данные обрабатываются в непрерывных микропакетах. -
Trigger.AvailableNow: запрос захватывает серверную версию общей таблицы при запуске, обрабатывает невыполненную работу в виде нескольких микропакетов, которые учитываютmaxFilesPerTriggerиmaxVersionsPerRpcзавершает работу при исчерпании захваченной версии. Требуетсяdelta-sharing-spark1.4.0 или более поздней версии. Старые версии используют оболочкуTrigger.AvailableNowв качестве резервного варианта, которая не учитываетmaxVersionsPerRpc. -
Trigger.Once:Устаревшие; вместо этого используйтеTrigger.AvailableNow. В версияхdelta-sharing-sparkниже 1.4.0Trigger.AvailableNowиспользует обёртку, которая не учитываетmaxVersionsPerRpc.
Примеры структурированных запросов потоковой передачи
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
См. также основные понятия структурированной потоковой передачи.
Чтение таблиц с включенными векторами удаления или сопоставлением столбцов
Important
Эта функция доступна в общедоступной предварительной версии.
Векторы удаления — это функция оптимизации хранилища, которую поставщик может включить в общих таблицах Delta. См. векторы удаления в Databricks.
Azure Databricks также поддерживает сопоставление столбцов для таблиц Delta. См. как переименовывать и удалять столбцы с использованием сопоставления столбцов в Delta Lake.
Если ваш поставщик предоставил таблицу, в которой включены векторы удаления или сопоставление столбцов, вы можете прочитать её, используя вычислительные мощности версии delta-sharing-spark 3.1 или выше. Если вы используете кластеры Databricks, вы можете выполнять пакетные операции чтения с помощью кластера под управлением Databricks Runtime 14.1 или более поздней версии. Для запросов CDF и потоковой передачи требуется Среда выполнения Databricks 14.2 или более поздней версии.
Пакетные запросы можно выполнять в неизменном виде, так как они могут автоматически разрешаться responseFormat на основе характеристик общей таблицы.
Чтобы считывать поток данных об изменениях (CDF) или выполнять потоковые запросы к общим таблицам с включенными векторами удаления или сопоставлением столбцов, необходимо задать дополнительный параметр responseFormat=delta.
В следующих примерах показаны пакетные запросы, запросы CDF и потоковые запросы.
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("...")
.master("...")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.getOrCreate()
val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"
// Batch query
spark.read.format("deltaSharing").load(tablePath)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.load(tablePath)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)
Чтение столбцов отслеживания строк в общих таблицах
Если поставщик данных включил отслеживание строк в общей таблице, можно запросить столбцы метаданных отслеживания строк с помощью Scala Spark. Список доступных столбцов приведен в разделе Отслеживание строк в Azure Databricks.
Вы должны установить параметр responseFormat в delta.
spark.read.format("deltaSharing")
.option("responseFormat", "delta")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.select("_metadata.row_id")
.show()
Note
Только формат разностного ответа поддерживается для запроса столбцов отслеживания строк в клиенте Spark. Соединители дампа не поддерживаются.
Pandas: чтение данных общего доступа
Выполните следующие действия, чтобы получить доступ к общим данным в pandas версии 0.25.3 или более поздней версии.
В этих инструкциях предполагается, что у вас есть доступ к файлу учетных данных, который был предоставлен поставщиком данных. См. раздел «Получение доступа» в модели совместного использования Databricks-to-Open.
Note
Если вы используете pandas рабочую область Azure Databricks, которая включена для каталога Unity, и вы использовали пользовательский интерфейс поставщика импорта для импорта поставщика и общего доступа, инструкции в этом разделе не применяются к вам. Доступ к общим таблицам можно получить так же, как и к любой другой таблице, зарегистрированной в каталоге Unity. Не нужно устанавливать соединитель Python delta-sharing или указать путь к файлу учетных данных. См. статью Импорт поставщика данных и чтение общих данных в Azure Databricks.
Установка соединителя OpenSharing Python
Чтобы получить доступ к метаданным, связанным с общими данными, например списком таблиц, которые с вами поделились, необходимо установить коннектор delta-sharing для Python. Сведения об ограничениях соединителя Python см. в разделе об ограничениях соединителя OpenSharing Python.
pip install delta-sharing
Перечисление общих таблиц с помощью pandas
Чтобы перечислить таблицы в общем ресурсе, выполните следующую команду, заменив <profile-path>/config.share на расположение файла учетных данных.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Если выходные данные пусты или не содержат ожидаемые таблицы, обратитесь к поставщику данных.
Доступ к общим данным с помощью pandas
Чтобы получить доступ к общим данным в pandas с помощью Python, выполните следующие действия, заменив переменные следующим образом:
-
<profile-path>: расположение файла учетных данных. -
<share-name>: значениеshare=для таблицы. -
<schema-name>: значениеschema=для таблицы. -
<table-name>: значениеname=для таблицы.
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")
Доступ к общему каналу данных об изменениях с помощью pandas
Чтобы получить доступ к ленте изменений данных для общей таблицы в pandas с помощью Python, выполните следующие действия, заменив переменные следующим образом. Поток данных об изменениях может отсутствовать в зависимости от того, предоставил ли поставщик данных доступ к потоку изменений на таблицу.
-
<starting-version>: необязательно. Начальная версия запроса включительно. -
<ending-version>: необязательно. Конечная версия запроса включительно. -
<starting-timestamp>: необязательно. Начальная метка времени запроса. Это преобразуется в версию, созданную в момент времени, который больше или равен этой метке времени. -
<ending-timestamp>: необязательно. Конечная метка времени запроса. Это преобразуется в версию, созданную ранее или равной этой метке времени.
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
Если выходные данные пусты или не содержат ожидаемые данные, обратитесь к поставщику данных.
Power BI: просмотр общих данных
Соединитель OpenSharing Power BI позволяет обнаруживать, анализировать и визуализировать наборы данных, которыми вы поделились с помощью открытого протокола OpenSharing.
Требования
- Power BI Desktop 2.99.621.0 или более поздняя версия.
- Доступ к файлу учетных данных, который был предоставлен поставщиком данных. См. раздел «Получение доступа» в модели совместного использования Databricks-to-Open.
Подключение к Databricks
Чтобы подключиться к Azure Databricks с помощью соединителя OpenSharing, выполните следующие действия:
- Откройте общий файл учетных данных с текстовым редактором, чтобы получить URL-адрес конечной точки и маркер.
- Откройте Power BI Desktop.
- В меню "Получить данные " найдите OpenSharing.
- Выберите соединитель и щелкните Подключиться.
- Введите URL-адрес конечной точки, скопированный из файла учетных данных, в поле URL-адреса сервера OpenSharing .
- При необходимости на вкладке Дополнительные параметры задайте максимальное число строк которое можно скачать. По умолчанию задано значение в 1 000 000 строк.
- Нажмите кнопку ОК.
- В разделе Проверка подлинности скопируйте токен, полученный из файла учетных данных, в поле Маркер носителя.
- Нажмите кнопку "Подключить".
Ограничения соединителя OpenSharing для Power BI
Соединитель OpenSharing Power BI имеет следующие ограничения:
- Данные, которые загружает соединитель, должны соответствовать памяти компьютера. Чтобы управлять этим требованием, коннектор ограничивает количество импортированных строк до Row Limit, которые вы установили на вкладке "Дополнительные параметры" в Power BI Desktop.
Tableau: чтение данных общего доступа
Коннектор Tableau OpenSharing позволяет находить, анализировать и визуализировать наборы данных, которыми с вами делятся через открытый протокол OpenSharing.
Требования
- Tableau Desktop и Tableau Server 2024.1 или новее
- Доступ к файлу учетных данных, который был предоставлен поставщиком данных. См. раздел «Получение доступа» в модели совместного использования Databricks-to-Open.
Подключение к Azure Databricks
Чтобы подключиться к Azure Databricks с помощью соединителя OpenSharing, выполните следующие действия:
- Перейдите в Tableau Exchange, следуйте инструкциям, чтобы скачать соединитель OpenSharing и поместить его в соответствующую папку рабочего стола.
- Откройте Tableau Desktop.
- На странице "Соединители" найдите "OpenSharing by Databricks".
- Выберите Загрузить файл для общего доступа, и выберите файл учетных данных, который был предоставлен поставщиком.
- Щелкните Получить данные.
- В обозревателе данных выберите таблицу.
- При необходимости добавьте фильтры SQL или ограничения строк.
- Нажмите кнопку "Получить данные таблицы".
Ограничения
Соединитель Tableau OpenSharing имеет следующие ограничения:
- Данные, которые загружает соединитель, должны соответствовать памяти компьютера. Для управления этим требованием соединитель ограничивает количество импортированных строк ограничением строки, заданным в Tableau.
- Все столбцы возвращаются в виде типа
String. - Фильтр SQL работает только в том случае, если сервер OpenSharing поддерживает предикатHint.
- Векторы удаления не поддерживаются.
- Сопоставление столбцов не поддерживается.
Ограничения соединителя OpenSharing Python
Эти ограничения относятся к соединителю OpenSharing Python:
- Соединитель OpenSharing Python 1.1.0+ поддерживает запросы моментальных снимков для таблиц с сопоставлением столбцов, но запросы CDF для таблиц с сопоставлением столбцов не поддерживаются.
- Коннектор OpenSharing Python приводит к сбою запросов CDF с
use_delta_format=True, если схема изменилась в пределах запрошенного диапазона версий.
Ограничения потоковой таблицы
Вы можете получить доступ только к текущему снимку общей потоковой таблицы. Следующие возможности не поддерживаются для потоковых таблиц в режиме Databricks-to-Open Sharing:
- Запрос данных журнала таблицы
- Запрос потока изменений данных таблицы (CDF)
- Использование таблицы в качестве источника для структурированной потоковой передачи Spark
Ограничения материализованного представления
Вы можете просмотреть только актуальный снимок общего материализованного представления. Использование материализованного представления в качестве источника для структурированной потоковой передачи Spark не поддерживается в совместном доступе Databricks to-Open.
Запрос новых учетных данных
Если URL-адрес активации учетных данных или скачанные учетные данные потеряны, повреждены или скомпрометированы, или срок действия учетных данных истекает без отправки нового поставщика, обратитесь к поставщику, чтобы запросить новые учетные данные.
Если вы являетесь получателем Azure Databricks, который импортировал учетные данные в качестве объекта поставщика в каталоге Unity, примените новые учетные данные с помощью REST API Databricks. См. раздел "Смена учетных данных" для открытых получателей.