다음을 통해 공유


Azure Stream Analytics를 통한 소셜 미디어 분석

이 문서에서는 실시간 X 이벤트를 Azure Event Hubs로 가져온 다음 Stream Analytics를 사용하여 분석하여 소셜 미디어 감정 분석 솔루션을 빌드하는 방법을 설명합니다. Azure Stream Analytics 쿼리를 작성하여 데이터를 분석하고 나중에 사용할 수 있도록 결과를 저장하거나 Power BI 대시보드를 만들어 실시간으로 인사이트를 제공합니다.

소셜 미디어 분석 도구는 조직에서 추세 항목을 이해하는 데 도움이 됩니다. 추세 항목은 소셜 미디어에 많은 게시물을 발생시키는 주제 및 입장입니다. 의견 마이닝이라는 감정 분석은 소셜 미디어 분석 도구를 사용하여 제품 또는 아이디어 등에 대한 자세를 결정합니다.

실시간 X 추세 분석은 분석 도구의 좋은 예입니다. 해시 태그 구독 모델을 사용하면 특정 키워드(해시태그)를 수신 대기하고 피드의 감정 분석을 개발할 수 있기 때문입니다.

시나리오: 소셜 미디어 실시간 감정 분석

뉴스 미디어 웹 사이트를 보유하는 기업은 독자와 직접적으로 관련이 있는 사이트 콘텐츠를 부각시켜 경쟁 우위를 확보하는 데 관심이 있습니다. 이 회사는 X 데이터의 실시간 감정 분석을 수행하여 독자와 관련된 주제에 대한 소셜 미디어 분석을 사용합니다.

X에서 추세 토픽을 실시간으로 식별하려면 회사는 주요 토픽에 대한 트윗 볼륨 및 감정에 대한 실시간 분석이 필요합니다.

필수 조건

이 방법 가이드에서는 X에 연결하고 특정 해시태그(설정할 수 있음)가 있는 트윗을 찾는 클라이언트 애플리케이션을 사용합니다. 다음 목록에서는 Azure Streaming Analytics를 사용하여 애플리케이션을 실행하고 트윗을 분석하기 위한 필수 조건을 제공합니다.

  • Azure 구독이 없는 경우 무료 계정을 만드세요.

  • X 계정입니다.

  • X 피드를 읽는 TwitterClientCore 애플리케이션입니다. 이 애플리케이션을 가져오려면 TwitterClientCore를 다운로드합니다.

  • .NET Core CLI 버전 2.1.0을 설치합니다.

구현하려는 솔루션 아키텍처는 다음과 같습니다.

솔루션을 빌드하는 데 사용되는 다양한 서비스 및 애플리케이션을 보여 주는 다이어그램

스트리밍 입력을 위한 이벤트 허브 만들기

애플리케이션 예제에서 이벤트를 생성하여 이벤트 허브에 푸시합니다. Azure Event Hubs는 Stream Analytics를 위해 이벤트를 수집하는 기본 방법입니다. 자세한 내용은 Azure Event Hubs 설명서를 참조하세요.

Event Hubs 네임스페이스 및 이벤트 허브 만들기

빠른 시작의 지침에 따라: Azure Portal 을 사용하여 이벤트 허브를 만들어 Event Hubs 네임스페이스 및 socialx-eh라는 이벤트 허브를 만듭니다. 다른 이름을 사용할 수 있습니다. 이 경우 나중에 이름이 필요하기 때문에 메모해 둡니다. 이벤트 허브에 다른 옵션을 설정하지 않아도 됩니다.

이벤트 허브에 대한 액세스 권한 부여

프로세스에서 이벤트 허브로 데이터를 보낼 수 있으려면 이벤트 허브에 액세스 권한을 허용하는 정책이 필요합니다. 액세스 정책은 권한 부여 정보를 포함하는 연결 문자열을 생성합니다.

  1. Event Hubs 네임스페이스 왼쪽의 탐색 모음에서 Event Hubs를 선택합니다(엔터티 섹션에 있음). 그런 다음, 방금 만든 이벤트 허브를 선택합니다.

  2. 왼쪽의 탐색 모음에서 설정아래에 있는 공유 액세스 정책을 선택합니다.

    참고 항목

    네임스페이스 및 이벤트 허브에 대한 공유 액세스 정책 옵션이 있습니다. 네임스페이스가 아니라 이벤트 허브의 컨텍스트에서 작업 중인지 확인합니다.

  3. 공유 액세스 정책 페이지의 명령 모음에서 + 추가를 선택합니다. 그런 다음 정책 이름에 대한 socialx-access입력하고 관리 확인란을 선택합니다.

  4. 만들기를 실행합니다.

  5. 정책이 배포되었으면 공유 액세스 정책 목록에서 정책을 선택합니다.

  6. Connection string primary-key로 레이블이 지정된 상자를 찾고 연결 문자열 옆의 복사 단추를 클릭합니다.

  7. 연결 문자열을 텍스트 편집기에 붙여넣습니다. 몇 가지 편집을 수행한 후 다음 섹션에서 이 연결 문자열이 필요합니다.

연결 문자열은 다음과 같습니다.

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh

연결 문자열에는 세미콜론으로 구분된 여러 키-값 쌍이 포함되어 있습니다(Endpoint, SharedAccessKeyName, SharedAccessKeyEntityPath).

참고 항목

보안을 위해 예제에 있는 연결 문자열의 일부가 제거되었습니다.

X 클라이언트 애플리케이션 구성 및 시작

클라이언트 애플리케이션은 X에서 직접 트윗 이벤트를 가져옵니다. 이렇게 하려면 Twitter 스트리밍 API를 호출할 수 있는 권한이 필요합니다. 해당 권한을 구성하려면 X에서 고유한 자격 증명(예: OAuth 토큰)을 생성하는 애플리케이션을 만듭니다. 그런 다음 API를 호출할 때 이러한 자격 증명을 사용하도록 클라이언트 애플리케이션을 구성할 수 있습니다.

X 애플리케이션 만들기

이 방법 가이드에 사용할 수 있는 X 애플리케이션이 아직 없는 경우 만들 수 있습니다. X 계정이 이미 있어야 합니다.

참고 항목

애플리케이션을 만들고 키, 비밀 및 토큰을 가져오는 X의 정확한 프로세스가 변경될 수 있습니다. 이러한 지침이 X 사이트에 표시되는 내용과 일치하지 않는 경우 X 개발자 설명서를 참조하세요.

  1. 웹 브라우저에서 X 개발자로 이동하여 개발자 계정을 만들고 앱 만들기를 선택합니다. X 개발자 계정을 신청해야 한다는 메시지가 표시될 수 있습니다. 자유롭게 신청할 수 있으며 계정 신청이 승인되면 확인 이메일이 수신됩니다. 개발자 계정이 승인될 때까지 며칠이 걸릴 수 있습니다.

    스크린샷은 앱 만들기 단추를 보여줍니다.

  2. 애플리케이션 만들기 페이지에서 새 앱에 대한 세부 정보를 제공한 다음, Twitter 애플리케이션 만들기를 선택합니다.

    스크린샷은 앱에 대한 값을 입력할 수 있는 앱 세부 정보 창을 보여줍니다.

  3. 애플리케이션 페이지에서 키 및 토큰 탭을 선택하고, 소비자 API 키소비자 API 비밀 키 값을 복사합니다. 또한 액세스 토큰 및 액세스 토큰 비밀 아래에서 만들기를 선택하여 액세스 토큰을 생성합니다. 액세스 토큰액세스 토큰 비밀에 대한 값을 복사합니다.

    X 애플리케이션에 대해 검색한 값을 저장합니다. 나중에 이 값이 필요합니다.

참고 항목

X 애플리케이션의 키와 비밀은 X 계정에 대한 액세스를 제공합니다. X 암호와 마찬가지로 이 정보를 중요한 정보로 처리합니다. 예를 들어 이 정보를 다른 사람에게 제공하는 애플리케이션에 포함하지 마세요.

클라이언트 애플리케이션 구성

Twitter Streaming API를 사용하여 특정 토픽 집합에 대한 트윗 이벤트를 수집하는 X 데이터에 연결하는 클라이언트 애플리케이션을 만들었습니다.

애플리케이션이 실행되기 전에 Twitter 키 및 이벤트 허브 연결 문자열과 같은 사용자의 특정 정보가 필요합니다.

  1. 필수 조건에 나와 있는 것처럼 TwitterClientCore 애플리케이션을 다운로드해야 합니다.

  2. 텍스트 편집기를 사용하여 App.config 파일을 엽니다. <appSettings> 요소를 다음과 같이 변경합니다.

    • oauth_consumer_key를 Twitter 사용자 키(API 키)로 설정합니다.
    • oauth_consumer_secret을 Twitter 사용자 암호(API 비밀 키)로 설정합니다.
    • oauth_token을 Twitter 액세스 토큰으로 설정합니다.
    • oauth_token_secret을 Twitter 액세스 토큰 암호로 설정합니다.
    • EventHubNameConnectionString을 연결 문자열로 설정합니다.
    • EventHubName을 이벤트 허브 이름(즉, 엔터티 경로 값)으로 설정합니다.
  3. 명령줄을 열고 TwitterClientCore 앱이 있는 디렉터리로 이동합니다. 명령 dotnet build를 사용하여 프로젝트를 빌드합니다. dotnet run 명령을 사용하여 앱을 실행합니다. 앱은 트윗을 Event Hubs에 보냅니다.

Stream Analytics 작업 만들기

이제 트윗 이벤트가 X에서 실시간으로 스트리밍되므로 이러한 이벤트를 실시간으로 분석하도록 Stream Analytics 작업을 설정할 수 있습니다.

  1. Azure Portal에서 리소스 그룹으로 이동하여 + 추가를 선택합니다. 그런 다음, Stream Analytics 작업을 검색하고 만들기를 선택합니다.

  2. 작업 이름을 socialx-sa-job으로 지정하고 구독, 리소스 그룹 및 위치를 지정합니다.

    최상의 성능을 위해 동일한 지역에 작업 및 이벤트 허브를 배치하는 것이 좋으며 지역 간에 데이터를 전송하는 데 비용을 지불하지 않아도 됩니다.

  3. 만들기를 실행합니다. 그런 다음, 배포가 완료되면 작업으로 이동합니다.

작업 입력 지정

  1. Stream Analytics 작업의 작업 토폴로지 아래에 위치한 왼쪽 메뉴에서 입력을 선택합니다.

  2. + 스트림 입력 추가>이벤트 허브를 선택합니다. 다음 정보로 새 입력 양식을 작성합니다.

    설정 제안 값 설명
    입력 별칭 TwitterStream 입력의 별칭을 기입합니다.
    구독 <구독> 사용할 Azure 구독을 선택합니다.
    Event Hubs 네임스페이스 asa-x-eventhub
    이벤트 허브 이름 socialx-eh 기존 항목 사용을 선택합니다. 그런 다음, 직접 만든 이벤트 허브를 선택합니다.
    이벤트 압축 유형 Gzip 데이터 압축 유형입니다.

    나머지 기본값을 그대로 적용하고 저장을 선택합니다.

작업 쿼리 지정

Stream Analytics는 변환을 설명하는 간단하고 선언적인 쿼리 모델을 지원합니다. 이 언어에 대한 자세한 내용은 Azure Stream Analytics 쿼리 언어 참조를 참조하세요. 이 방법 가이드는 X 데이터에 대한 여러 쿼리를 작성하고 테스트하는 데 도움이 됩니다.

항목 간의 멘션 수를 비교하기 위해 연속 창을 활용하여 5초마다 항목별 멘션 수를 수집합니다.

  1. 개요에서 쿼리 상자의 오른쪽 위에 있는 쿼리 편집을 선택합니다. Azure에서는 작업에 대해 구성된 입력 및 출력을 나열하며, 데이터가 출력으로 전송됨에 따라 사용자가 입력 스트림을 변환하는 쿼리를 작성할 수 있습니다.

  2. 쿼리 편집기에서 쿼리를 다음으로 변경합니다.

    SELECT *
    FROM TwitterStream
    
  3. 메시지의 이벤트 데이터가 쿼리 아래의 입력 미리 보기 창에 표시됩니다. 보기JSON으로 설정되었는지 확인합니다. 데이터가 표시되지 않는 경우 데이터 생성기가 이벤트 허브로 이벤트를 전송하고 입력에 대한 압축 형식으로 GZip을 선택했는지 확인합니다.

  4. 쿼리 테스트를 선택하고 쿼리 아래의 테스트 결과 창에서 결과를 확인합니다.

  5. 코드 편집기의 쿼리를 다음으로 변경한 후 쿼리 테스트를 선택합니다.

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. 이 쿼리는 키워드 Azure를 포함하는 모든 트윗을 반환합니다.

출력 싱크 만들기

이제 이벤트 스트림, 이벤트를 수집할 이벤트 허브 입력 및 스트림 변환을 수행할 쿼리를 정의했습니다. 마지막 단계는 작업에 대한 출력 싱크를 정의하는 것입니다.

이 방법 가이드에서는 작업 쿼리에서 집계된 트윗 이벤트를 Azure Blob Storage에 기록합니다. 또한 특정 애플리케이션 요구 사항에 따라 Azure SQL Database, Azure Table Storage, Event Hubs 또는 Power BI에 결과를 푸시할 수도 있습니다.

작업 출력 지정

  1. 왼쪽 탐색 메뉴의 작업 토폴로지 섹션에서 출력을 선택합니다.

  2. 출력 페이지에서 + 추가Blob Storage/Data Lake Storage Gen2를 선택합니다.

    • 출력 별칭: 이름으로 TwitterStream-Output를 사용합니다.
    • 가져오기 옵션: 구독에서 스토리지 선택을 선택합니다.
    • 스토리지 계정. 사용자의 스토리지 계정을 선택합니다.
    • 컨테이너. 새로 만들기를 선택하고 socialx을 입력합니다.
  3. 저장을 선택합니다.

작업 시작

작업 입력, 쿼리 및 출력이 지정됩니다. Stream Analytics 작업을 시작할 준비가 되었습니다.

  1. TwitterClientCore 애플리케이션이 실행되고 있는지 확인합니다.

  2. 작업 개요에서 시작을 선택합니다.

  3. 작업 시작 페이지의 작업 출력 시작 시간에서 지금을 선택한 후 시작을 선택합니다.

지원 받기

추가 지원이 필요한 경우 Azure Stream Analytics용 Microsoft Q&A 질문 페이지를 참조하세요.

다음 단계