Как прочитать файл JSON, отделенный строкой от озера данных Azure, и выполнить запрос с помощью usql - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть данные ioT в структуре лазурных данных как {дата} / {месяц} / {день} / abbs.Json Каждый файл имеет несколько записей, разделенных новой строкой. Как читать эти данные с помощью usql и загружать в таблицу и запрос.

Когда я загружаю его в таблицу usql с помощью ////.json, он загружает данные в ту же таблицу, когда новые файлы добавляются в файлы.

Я следил за документацией qzure, но не нашел ответа на файл json, разделенный строкой.

1 Ответ

0 голосов
/ 27 декабря 2018

В этом примере мы создадим таблицу для хранения событий:

CREATE TABLE dbo.Events  
(
     Event string
    ,INDEX cIX_EVENT CLUSTERED(Event ASC) DISTRIBUTED BY HASH(Event)
);

Затем, когда дело доходит до извлечения json и вставки его в базу данных:

Сначала необходимо извлечьстроки с помощью простого экстрактора текста, то вы можете разобрать его.Например, дайте файл с объектами json, разделенными новыми строками

{ "Event": "One" }
{ "Event": "Tow" }
{ "Event":  "Three"}

, тогда этот скрипт извлечет события:

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

@RawExtract = EXTRACT [RawString] string
    FROM @input
    USING Extractors.Text(delimiter:'\b', quoting : false);

@ParsedJSONLines = SELECT JsonFunctions.JsonTuple([RawString]) AS JSONLine
    FROM @RawExtract;

INSERT INTO Events  
SELECT JSONLine["Event"] AS Event
FROM @ParsedJSONLines;  

Позже вы можете прочитать из таблицы, например так:

@result =
    SELECT Event
    FROM Events;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);

Теперь, поскольку это INSERT IMTO, данные будут добавлены в таблицу.

Ресурсы:
Примеры GitHub

Больше примеров GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...